我具有以下格式的数据
LOCATION SALESDATE Saleprice
0 Store A 2018-04-15 524.4
1 Store B 2018-04-15 524.4
2 Store B 2018-04-15 524.4
3 Store C 2018-04-15 296.4
4 Store C 2018-04-15 296.4
我想要一个以下格式的数据框:
04/2018 05/2018 06/2018
Store A 524.4 524.4 524.4
Store B 123.2 234.4 524.4
Store C 524.4 524.4 524.4
其中每一行都是一家商店,每一列代表相应月份/年份的总销售额。
我尝试过:
df.groupby([df.LOCATION, df.SALESDATE.dt.year.rename('year'), df.SALESDATE.dt.month.rename('month')]).sum()
几乎是我想要的,但是第二和第三索引应该是列。
答案 0 :(得分:0)
您是否尝试过使用pd.pivot_table()
?
我已经稍微修改了您的代码以拆分月份和年份,因此您可能需要进行修改以获取正确的格式。见下文:
df["month"] = df.SALESDATE.dt.month
df["year"] = df.SALESDATE.dt.year
new_df = pd.pivot_table(df, values="Saleprice", index="LOCATION", columns=["month", "year"])