科学数据库----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
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()
3.2、分析乘客在一年中各月份的分布(在一张柱状图中画)
number = df["passengers"].groupby([df["year"],df["month"]]).sum().unstack()
number
number.plot(kind="bar",figsize=(23,8))
上一篇: 行走*