使用pandas转csv,如何在多级索引中组织时间和数值数据
Using pandas to csv, how to organize time and numerical data in a multi-level index
使用 pandas 写入 csv,我想要每个唯一来源的月收入总和。月份采用日期时间格式。
我试过重采样和groupby方法,但是groupby忽略月份,重采样忽略源。我目前有一个以 Month 和 Source 作为索引的多级索引。
Month Source Income
2019-03-01 A 100
2019-03-05 B 50
2019-03-06 A 4
2019-03-22 C 60
2019-04-23 A 40
2019-04-24 A 100
2019-04-24 C 30
2019-06-1 C 100
2019-06-1 B 90
2019-06-8 B 20
2019-06-12 A 50
2019-06-27 C 50
我可以对忽略日期的源进行分组,或者我可以对忽略源的日期进行重新采样。我想要每个唯一来源的每月总和。
月 列中的内容是 时间戳。所以你可以分离这个 Timestamp 的月份属性,然后应用 groupby 方法,像这样:
df.columns = ['Timestamp', 'Source', 'Income']
month_list = []
for i in range(len(df)):
month_list.append(df.loc[i,'Timestamp'].month)
df['Month'] = month_list
df1 = df.groupby(['Month', 'Source']).sum()
输出应该是这样的:
Income
Month Source
3 A 104
B 50
C 60
4 A 140
C 30
6 A 50
B 110
C 150
使用 pandas 写入 csv,我想要每个唯一来源的月收入总和。月份采用日期时间格式。
我试过重采样和groupby方法,但是groupby忽略月份,重采样忽略源。我目前有一个以 Month 和 Source 作为索引的多级索引。
Month Source Income
2019-03-01 A 100
2019-03-05 B 50
2019-03-06 A 4
2019-03-22 C 60
2019-04-23 A 40
2019-04-24 A 100
2019-04-24 C 30
2019-06-1 C 100
2019-06-1 B 90
2019-06-8 B 20
2019-06-12 A 50
2019-06-27 C 50
我可以对忽略日期的源进行分组,或者我可以对忽略源的日期进行重新采样。我想要每个唯一来源的每月总和。
月 列中的内容是 时间戳。所以你可以分离这个 Timestamp 的月份属性,然后应用 groupby 方法,像这样:
df.columns = ['Timestamp', 'Source', 'Income']
month_list = []
for i in range(len(df)):
month_list.append(df.loc[i,'Timestamp'].month)
df['Month'] = month_list
df1 = df.groupby(['Month', 'Source']).sum()
输出应该是这样的:
Income
Month Source
3 A 104
B 50
C 60
4 A 140
C 30
6 A 50
B 110
C 150