2016-07-25 237 views
0

我有一個熊貓數據框。我想創建另一個數據框,其中的列將成爲第一幀中所選列的總和。來自另一個數據幀的大小熊貓數據幀

例如在第一個數據幀中,我有名爲'A''B','C''D'的列。新的列是'X''Y''X'必須是它們的總和'A','B''C''Y'只包含'D'。 「映射」可以保存在字典中:{'X': ['A', 'B', 'C'], Y: ['D']},但它不一定需要。

我應該用鍵'X''Y'初始化空數據框,然後添加列或有更快的方法嗎?

回答

2

您只需直接初始化已經與數據數據幀在它:

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_framename作爲您想要的欄目名稱。否則,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