【发布时间】:2019-11-12 12:20:47
【问题描述】:
我有一个如下所示的数据框:
df = pd.DataFrame({'Date': {0: '01/08/2016 0:00', 1: '01/08/2016 1:00', 2: '01/08/2016 2:00'},
'amount_1': {0: 29189, 1: 27614, 2: 26579},
'amount_2': {0: 26277, 1: 24992, 2: 23533},
'target': {0: 28602, 1: 27112, 2: 25975}})
我想保持日期和目标列相同,并在保持顺序的同时转置 amount_1 和 amount_2 行。因此,日期列之后的 3 列属于每小时的 amount_1,然后是每小时的 amount_2 列。
这是我迄今为止尝试过的。
df_t = df.melt(id_vars=['Date','target']).drop('variable', 1).sort_values(['Date','target'])
df_t.T
我想要的输出是:
df_t = pd.DataFrame({'Date': {0: '01/08/2016 0:00', 1: '01/08/2016 1:00', 2: '01/08/2016 2:00'},
'amount_1_hour0': {0: 29189, 1: 29189, 2: 29189},
'amount_1_hour1': {0: 27614, 1: 27614, 2: 27614},
'amount_1_hour2': {0: 26579, 1: 26579, 2: 26579},
'amount_2_hour0': {0: 26277, 1: 26277, 2: 26277},
'amount_2_hour1': {0: 24992, 1: 24992, 2: 24992},
'amount_2_hour2': {0: 23533, 1: 23533, 2: 23533},
'target': {0: 28602, 1: 27112, 2: 25975}})
【问题讨论】:
-
请提供可复制的数据,不要截图
标签: python pandas dataframe pivot transpose