2015-11-01 104 views
0

我有一個數據框,我想根據存儲在另一列中的值創建一個新列。根據存儲在另一列中的值爲列分配值

foo = pd.DataFrame(
    [['USA','x',1,2], 
    ['Canada','y',2,4], 
    ['Australia','x',3,6]], 
    columns = ('Country', 'C1','x', 'y') 
) 

例如,給出以下數據幀

Country  C1 x y 
0 USA   x 1 2 
1 Canada  y 2 4 
2 Australia x 3 6 

我想創建一個新的列說ž但列C1決定,其中z的值將被從列x或y列的到來。 換句話說,我想要做的事像

FOO [ 'Z'] = FOO [富[ 'C1']]

該柱C1可以具有28個不同的值之一。 這個問題與評論中提到的問題不同,因爲我不想根據預先存在的值計算值,而是在其中一列(本例中爲C1)中包含值的值的列的名稱存儲在新列中。

+0

的可能的複製[熊貓:創建在數據幀兩個新列與來自預先存在的列計算的值](http://stackoverflow.com/questions/12356501/pandas-create-two-new-在一個數據框中使用值計算從一個前) – klib

+0

您說:「列C1決定z的值將來自列x或列y。」 C1會如何決定?基於什麼條件? –

+0

C1將具有其值應被用作該特定行的z的值的列的名稱 – MARK

回答

2
foo['z']=foo.apply(lambda x: x[x['C1']], axis=1) 
相關問題