欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

科学数据库----Matplotlib+Pandas小练习(持续更新)

程序员文章站 2022-04-03 18:06:06
...

一、数据加载

文件夹点击这里

### Step 1. 导入相应的模块
from pandas import DataFrame,Series
import pandas as pd
import numpy as np
#Step 2. 加载文件
pd.read_csv("datasets/users.csv",sep='|')

### Step 3. 将加载的数据集赋值给变量users.
users = pd.read_csv("datasets/users.csv",sep="|")

### Step 4. 以occupation分组,求每一种职业所有用户的平均年龄
Age = users["age"].groupby(users["occupation"]).mean()
### Step 5. 求每一种职业男性的占比,作为新的一列(male_pct)创建新的数据集中,并按照从低到高的顺序排列

# 去重
chipo_filtered = chipo.drop_duplicates(['item_name','quantity'])

# 只选择数量等于1的产品 
chipo_one_prod = chipo_filtered[chipo_filtered.quantity == 1]

# 只选择iTimeNead和ItMeMax价格列 
price_per_item = chipo_one_prod[['item_name', 'item_price']]

# 降序排列
price_per_item.sort_values(by = "item_price", ascending = False)
### Step 6. 获取每一种职业对应的最大和最小的用户年龄
def get_age(group): 
    return { 'min': group.min(), 'max': group.max(),} 

grouped = users.age.groupby(users.occupation) 
grouped.apply(get_age).unstack()

二、数据过滤和排序

文件内容链接

import pandas as pd
import numpy as np
from pandas import DataFrame,Series
chipo = pd.read_csv("datasets/chipotle.csv",sep="\t")

###. 计算出有多商品大于10美元
chipo['new_item_price'] = chipo['item_price'].str.replace('$','').apply(pd.Series)
chipo['new_item_price'] = chipo['new_item_price'].astype(float)
chipo['new_item_price'].loc[chipo['new_item_price']>10].count()

### 输出一个只包含两列, item_name 和 item_price的dataframe
dataframe= chipo[["item_name","item_price"]]

### . 根据商品的价格对数据进行排序
chipo2 = pd.read_csv("./datasets/chipotle.csv",sep = "\t")
chipo.sort_values(by='item_price')

三、Matplotlib+Pandas

csv数据点击这里

import matplotlib.pyplot as plt
from pandas import Series,DataFrame
import numpy as np
import pandas as pd
plt.rcParams["font.sans-serif"]=['SimHei']  # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
df = pd.read_csv("flights.csv") #加载数据

3.1、用折线图画出乘客数量虽年份变化的走势图

number = df["passengers"].groupby(df["year"]).sum()
year2 = DataFrame(number)
year = year2.index
year=list(year)
number = list(number)
# year,number##俩列表
#画折线图

x = year
y = number
plt.plot(x,y,label="乘客数量随年份变化")
plt.xlabel('年份')
plt.ylabel('人数')
plt.title('乘客数量随年份变化')
plt.legend()
plt.show()

                                     科学数据库----Matplotlib+Pandas小练习(持续更新)

3.2、分析乘客在一年中各月份的分布(在一张柱状图中画)

number = df["passengers"].groupby([df["year"],df["month"]]).sum().unstack()
number
number.plot(kind="bar",figsize=(23,8))

科学数据库----Matplotlib+Pandas小练习(持续更新)

相关标签: 练习题