Python 将包含两部分的列转换为多索引
我从CSV文件中读取了以下数据帧,无法更改:Python 将包含两部分的列转换为多索引,python,pandas,Python,Pandas,我从CSV文件中读取了以下数据帧,无法更改: df = pd.DataFrame([['low', 0.5, 123, 0.8, 123], ['high', 0.7, 253, 0.9, 147]], columns=['type', 'g1 v0', 'g1 v1', 'g2 v0', 'g2 v1']) 我想在多索引中拆分列g1 v0、g1 v1等,例如: g1
df = pd.DataFrame([['low', 0.5, 123, 0.8, 123],
['high', 0.7, 253, 0.9, 147]],
columns=['type', 'g1 v0', 'g1 v1', 'g2 v0', 'g2 v1'])
我想在多索引中拆分列g1 v0、g1 v1等,例如:
g1 g2
v0 v1 v0 v1
type
0 low 0.5 123 0.8 123
1 high 0.7 253 0.9 147
基本上,我希望将列名的gx/vy部分分为两个独立的级别。使用+:
另一个解决方案包括、拆分和:
我无法改进这个答案!set_index+split方法正是我想要的,谢谢!很高兴能帮助你!祝你好运
df = df.set_index('type')
df.columns = df.columns.str.split(expand=True)
print (df)
g1 g2
v0 v1 v0 v1
type
low 0.5 123 0.8 123
high 0.7 253 0.9 147
df1 = df.drop('type', axis=1)
df1.columns = df1.columns.str.split(expand=True)
print (df1)
g1 g2
v0 v1 v0 v1
0 0.5 123 0.8 123
1 0.7 253 0.9 147
df = pd.concat([df['type'].rename(('','type')), df1], axis=1)
print (df)
g1 g2
type v0 v1 v0 v1
0 low 0.5 123 0.8 123
1 high 0.7 253 0.9 147