1.爬取新发地果蔬价格csv,上一张的内容,爬取新发地果蔬价格保存为CSV格式,筛选出毛猪白条猪,
2.筛选分析猪肉的价格,利用matplotlib库生产趋势图.
#pandas
import pandas as pd #导入数据处理工具pandas
import matplotlib.pyplot as plt#导入图形化显示工具matplotlib
dataframe = pd.read_csv("新发地菜价.csv",header=None)
#print(dataframe)
#拿到数据
fei = dataframe[dataframe[0] == "白条猪(肥)"]
shou = dataframe[dataframe[0] == "白条猪(瘦)"]
#print(fei)
#print(shou)
fei = fei[[0, 2, 6]]#取抓取数据的0和2和6列数据
shou = shou[[0, 2, 6]]#取抓取数据的0和2和6列数据
#print(shou)
#print(fei)
df = pd.merge(fei, shou, on=6)#第6行是日期,同一天肥和瘦的平均价格
#print(df)
df['平均'] = (df['2_x'] + df['2_y'])/2
#print(df)
df = df.drop_duplicates(6)#根据日期去重,第6行是日期,drop是取掉的意思
#print(df)
df = df[[6,'平均']]#创建走势图只需要日期和均价
#print(df)
#print(df.info)
#首先把6列更改数据类型为datatime
df[6] = pd.to_datetime(df[6])
df = df.set_index(6)#把第六行的日期设置为索引
print(df)
print(df['2018'])#获取2018年的数据,时间必须是索引
df_2018 = (df['2018'])#取2018年的数据
df_2019 = (df['2019'])#取2019年的数据
#计算每个月的均价
df_2018 = df_2018.resample("M").mean().to_period("M")#获取2018每个月的平均值,M是以月份为单位输出
df_2019 = df_2019.resample("M").mean().to_period("M")
#print(df_2018)
#print(df_2019)
#plt.plot(x,y )#图形化横轴和纵轴
#plt.plot(df_2018.index.to_timestamp(), df_2018['平均'].values, "--x")#x轴价格,y轴年月,--x后出现虚线
#plt.plot(df_2019.index.to_timestamp(), df_2019['平均'].values, "--x")#x轴价格,y轴年月,--x后出现虚线
plt.plot(df_2018.index.to_timestamp().map(lambda x: x.month), df_2018['平均'].values, "--x")#lambda后x轴价格,y轴月份
plt.plot(df_2019.index.to_timestamp().map(lambda x: x.month+0.5), df_2019['平均'].values, "--x")#lambda后x轴价格,y轴月份
plt.bar(df_2018.index.to_timestamp().map(lambda x: x.month), df_2018['平均'].values, width=0.3)#bar柱形图后x轴价格,y轴月份
plt.bar(df_2019.index.to_timestamp().map(lambda x: x.month+0.5), df_2019['平均'].values, width=0.3)#bar柱形图后x轴价格,y轴月
#0.3表示柱形的宽度,0.5表示月份右移0.5.上面的plot是一样的
plt.show()
3.趋势图
4.分析
12月份猪肉达到最高价25元.1月份最低12元左右
5.结果
持续上涨