如何为以下示例数据框在熊猫中构建多索引:
import pandas as pd
df = pd.DataFrame({'day':['2020-01-01', '2020-01-02'], 'value_mean':[1,5], 'value_max':[40,100]})
改变现有的:
day value_mean value_max
0 2020-01-01 1 40
1 2020-01-02 5 100
类似:
value
day mean max
0 2020-01-01 1 40
1 2020-01-02 5 100
答案 0 :(得分:2)
没有Multiindex
与MultiIndex columns
的连接问题,唯一的技巧是在第二级使用空字符串:
df.columns = df.columns.str.split('_', expand=True)
df = df.rename(columns = lambda x: x if pd.notna(x) else '')
print (df)
day value
mean max
0 2020-01-01 1 40
1 2020-01-02 5 100
print (df.columns)
MultiIndex([( 'day', ''),
('value', 'mean'),
('value', 'max')],
)
如果要清除,请不要在级别中输入空字符串值:
df = df.set_index('day')
df.columns = df.columns.str.split('_', expand=True)
print (df)
value
mean max
day
2020-01-01 1 40
2020-01-02 5 100
答案 1 :(得分:0)
另一个选择:
df.columns = pd.MultiIndex(levels=[['value', 'day'], ['mean','max','']], codes=[[1,0,0],[2,0,1]])
输出:
day value
mean max
0 2020-01-01 1 40
1 2020-01-02 5 100