Python 整形函数
为了添加许多优秀的例子,我正在尝试将数据重塑为我想要的格式 我目前拥有按客户、采购类别和日期编制的数据索引,并在各列中对每个日内时间段进行了观察: 我希望按购买类别进行聚合,并重新调整形状,以便按日期和时间对我的数据进行索引,同时客户出现在各列中 实现这一目标的关键是什么 在文本形式中,原始数据如下所示:Python 整形函数,python,pandas,pivot,reshape,Python,Pandas,Pivot,Reshape,为了添加许多优秀的例子,我正在尝试将数据重塑为我想要的格式 我目前拥有按客户、采购类别和日期编制的数据索引,并在各列中对每个日内时间段进行了观察: 我希望按购买类别进行聚合,并重新调整形状,以便按日期和时间对我的数据进行索引,同时客户出现在各列中 实现这一目标的关键是什么 在文本形式中,原始数据如下所示: customer采购类别日期00:3001:0001:301A01/07/20121.251.251.251B01/07/20120.8550.7860.6041C01/07/20120
customer采购类别日期00:3001:0001:301A01/07/20121.251.251.251B01/07/20120.8550.7860.6041C01/07/20120001A02/07/20121.251.251.1251B02/07/20120.3090.0820.0591C02/07/20120002A01/07/20120002B01/07/20120.1670.1080.1192C01/07/20120002A02/07/07/2012000002/07/07/20120.110.1090.123我认为您需要通过聚合和重塑代码. 最后一列level_1
,添加到date
并转换:
你能给你的数据框一个可复制的版本吗?@MMF如果有帮助的话,我已经添加了可复制的文本表。
print (df)
Customer Purchase Category date 00:30 01:00 01:30
0 1 A 01/07/2012 1.250 1.250 1.250
1 1 B 01/07/2012 0.855 0.786 0.604
2 1 C 01/07/2012 0.000 0.000 0.000
3 1 A 02/07/2012 1.250 1.250 1.125
4 1 B 02/07/2012 0.309 0.082 0.059
5 1 C 02/07/2012 0.000 0.000 0.000
6 2 A 01/07/2012 0.000 0.000 0.000
7 2 B 01/07/2012 0.167 0.108 0.119
8 2 C 01/07/2012 0.000 0.000 0.000
9 2 A 02/07/2012 0.000 0.000 0.000
10 2 B 02/07/2012 0.110 0.109 0.123
df1 = df.groupby(['Customer','date']).sum().stack().unstack(0).reset_index()
df1.date = pd.to_datetime(df1.date + df1.pop('level_1'), format='%d/%m/%Y%H:%M')
print (df1)
Customer date 1 2
0 2012-07-01 00:30:00 2.105 0.167
1 2012-07-01 01:00:00 2.036 0.108
2 2012-07-01 01:30:00 1.854 0.119
3 2012-07-02 00:30:00 1.559 0.110
4 2012-07-02 01:00:00 1.332 0.109
5 2012-07-02 01:30:00 1.184 0.123