来自另一个数据帧的大小熊猫数据帧
问题描述:
我有一个熊猫数据框。我想创建另一个数据框,其中的列将成为第一帧中所选列的总和。来自另一个数据帧的大小熊猫数据帧
例如在第一个数据帧中,我有名为'A'
,'B'
,'C'
和'D'
的列。新的列是'X'
和'Y'
和'X'
必须是它们的总和'A'
,'B'
和'C'
和'Y'
只包含'D'
。 “映射”可以保存在字典中:{'X': ['A', 'B', 'C'], Y: ['D']}
,但它不一定需要。
我应该用键'X'
和'Y'
初始化空数据框,然后添加列或有更快的方法吗?
答
您只需直接初始化已经与数据数据帧在它:
df2 = pd.DataFrame({'X': df[['A', 'B', 'C']].sum(axis=1), 'Y': df['D']})
或者您也可以通过列构建它列:
df2 = df[['A', 'B', 'C']].sum(axis=1).to_frame(name='X')
df2['Y'] = df['D']
对于第一列,您需要请致电to_frame
与name
作为您想要的栏目名称。否则,df2
将成为一个Series而不是DataFrame,您将无法添加列。在初始列之后,您可以照常分配列。
样品输入:
df = pd.DataFrame({'A':[3,1,4],'B':[1,5,9],'C':[2,6,5],'D':[3,5,8]})
A B C D
0 3 1 2 3
1 1 5 6 5
2 4 9 5 8
样本输出(对于任何一种方法):
X Y
0 6 3
1 12 5
2 18 8