我目前正在尝试整理Sentdex数据分析视频中使用的鳄梨价格数据:https://www.youtube.com/watch?v = DamIIzp41Jg&list = PLQVvvaa0QuDfSfqQuee6K8opKtZsh7sA9&index = 2
这是我正在使用的数据集:https : //www.kaggle.com/neuromusic/avocado-prices
我想按月份将加利福尼亚州的日期分组,以便最终以平均价格绘制月份。
我目前编写了以下代码:
import pandas as pd
df = pd.read_csv(avocado.csv")
cali = pd.DataFrame()
region_df = df.copy()[ df['region'] == "California" ]
cali = region_df[["Date","AveragePrice"]]
M=["Jan",'Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
cali = region_df[["Date","AveragePrice"]]
cali["Month"] = "NA"
cali.loc[cali.Date.str.contains('2015-01'), 'Month'] = M[0]
cali.set_index("Date", inplace=True)
cali.sort_index(inplace=True)
这是表的输出:
从2015年到2018年的每个月执行此操作会很麻烦且乏味,我想知道是否存在一种更有效的按月分组日期的方法。
我认为你需要DataFrame.resample
,与转换Date
到DatetimeIndex
在read_csv
是否需要情节year with month
S:
df = pd.read_csv("avocado.csv", index_col=['Date'], parse_dates=['Date'])
region_df = df[df['region'] == "California" ]
s = region_df.resample('MS').AveragePrice.mean()
print (s)
s.plot()
如果需要像这样的月份Jan, Feb...
:
df = pd.read_csv("avocado.csv", index_col=['Date'], parse_dates=['Date'])
region_df = df[df['region'] == "California" ].copy()
region_df = region_df.sort_index()
s = region_df.groupby(region_df.index.strftime('%b'), sort=False).AveragePrice.mean()
print (s)
Date
Jan 1.218333
Feb 1.191875
Mar 1.281765
Apr 1.306923
May 1.263929
Jun 1.360000
Jul 1.502857
Aug 1.583462
Sep 1.626250
Oct 1.723929
Nov 1.527308
Dec 1.298846
Name: AveragePrice, dtype: float64
d.plot()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句