我有以下带有日期时间索引的数据框:
>df
DEtoDK DKtoDE
datetime
2021-01-01 00:00:00 2500.0 2500.0
2021-01-01 01:00:00 2500.0 2500.0
2021-01-01 02:00:00 2500.0 2500.0
但是,我不喜欢它的样子,它限制了我将两个列值一起调用(例如,我想一起调用 DEtoDK
和 DKtoDE
)。因此,我想将两列 DEtoDK
和 DKtoDE
组合成一个主列 A
。
我该怎么做?
预期结果:
>df
A
DEtoDK DKtoDE
datetime
2021-01-01 00:00:00 2500.0 2500.0
2021-01-01 01:00:00 2500.0 2500.0
2021-01-01 02:00:00 2500.0 2500.0
编辑:
通过 How to do Multi-Column from_tuples? 可以通过 Multi-Column by tuples 轻松完成,但是如果我没有元组是不可能的吗?
答案 0 :(得分:0)
您可以使用辅助函数 np.arange
的整数除法和 2
的列长度,然后通过 chr
和 ord
函数将整数转换为字母 s,最后传递给 { {3}}:
a = [chr(ord('A') + x) for x in np.arange(len(df.columns)) // 2]
df.columns = pd.MultiIndex.from_arrays([a, df.columns])
print (df)
A B
A_DEtoDK A_DKtoDE B_DEtoDK B_DKtoDE
datetime
2021-01-01 00:00:00 2500.0 2500.0 500.0 500.0
2021-01-01 01:00:00 2500.0 2500.0 500.0 500.0
2021-01-01 02:00:00 2500.0 2500.0 500.0 500.0