我相信你需要第一个参数parse_dates
in read_csv http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html将列解析为日期时间,然后groupby http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.groupby.html by weekday_name http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DatetimeIndex.weekday_name.html并汇总:
df_data = pd.read_csv('data.csv', parse_dates=['arrival_date'])
week_df = df_data.groupby(df_data['arrival_date'].dt.weekday_name).mean()
print (week_df)
price_1 price_2 price_3 price_4
arrival_date
Friday 71.952235 1130.106565 64.900476 25.779593
Monday 71.026544 1391.363442 67.362277 25.976418
Saturday 83.149556 1364.312304 76.538815 27.371489
Sunday 57.553097 1223.977557 51.952801 21.552876
Thursday 66.831764 1364.982781 63.940393 23.887128
Tuesday 79.006604 1241.603185 75.360606 28.250994
Wednesday 76.021324 1276.650570 72.485089 23.611288
对于数字索引使用weekday http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.weekday.html:
week_df = df_data.groupby(df_data['arrival_date'].dt.weekday).mean()
print (week_df)
price_1 price_2 price_3 price_4
arrival_date
0 71.026544 1391.363442 67.362277 25.976418
1 79.006604 1241.603185 75.360606 28.250994
2 76.021324 1276.650570 72.485089 23.611288
3 66.831764 1364.982781 63.940393 23.887128
4 71.952235 1130.106565 64.900476 25.779593
5 83.149556 1364.312304 76.538815 27.371489
6 57.553097 1223.977557 51.952801 21.552876
EDIT:
为了正确订购,请添加reindex http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.reindex.html:
days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday', 'Sunday']
week_df = df_data.groupby(df_data['arrival_date'].dt.weekday_name).mean().reindex(days)
print (week_df)
price_1 price_2 price_3 price_4
arrival_date
Monday 71.026544 1391.363442 67.362277 25.976418
Tuesday 79.006604 1241.603185 75.360606 28.250994
Wednesday 76.021324 1276.650570 72.485089 23.611288
Thursday 66.831764 1364.982781 63.940393 23.887128
Friday 71.952235 1130.106565 64.900476 25.779593
Saturday 83.149556 1364.312304 76.538815 27.371489
Sunday 57.553097 1223.977557 51.952801 21.552876