gpt4 book ai didi

python - 如何将数据框中的列合并到另一个数据框中

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:49 25 4
gpt4 key购买 nike

如何将数据帧中的列合并到多索引数据帧标题。

即如何合并各自的主题值并创建新的数据框

        import pandas as pd
import numpy as np

df = pd.DataFrame({'Maths':[95,96,97,98] ,'Science': [91,92,93,94]})
df1 = pd.DataFrame({'Social':[85,86,87,88] ,'English': [81,82,83,84]})
print df
Maths Science
0 95 91
1 96 92
2 97 93
3 98 94
print df1
English Social
0 81 85
1 82 86
2 83 87
3 84 88

最佳答案

使用concat带参数 keys:

df = pd.concat([df, df1], axis=1, keys=('Semester1','Semester2'))
print (df)
Semester1 Semester2
Maths Science Social English
0 95 91 85 81
1 96 92 86 82
2 97 93 87 83
3 98 94 88 84

print (df.columns)
MultiIndex(levels=[['Semester1', 'Semester2'], ['English', 'Maths', 'Science', 'Social']],
labels=[[0, 0, 1, 1], [1, 2, 3, 0]])

编辑:对于新列使用 assign :

df = df.assign(avg=df.mean(axis=1), perc=df.sum(axis=1) / df.values.sum())
df1 = df.assign(avg=df1.mean(axis=1),perc=df1.sum(axis=1) / df1.values.sum())

df = pd.concat([df, df1], axis=1, keys=('Semester1','Semester2'))
print (df)
Semester1 Semester2
Maths Science avg perc Maths Science avg perc
0 95 91 93.0 0.246032 95 91 83.0 0.245562
1 96 92 94.0 0.248677 96 92 84.0 0.248521
2 97 93 95.0 0.251323 97 93 85.0 0.251479
3 98 94 96.0 0.253968 98 94 86.0 0.254438

关于python - 如何将数据框中的列合并到另一个数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51840123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com