比方說,我的數據幀包含以下數據:如何計算基於其他列的大熊貓值的新列 - 蟒蛇
>>> df = pd.DataFrame({'a':['l1','l2','l1','l2','l1','l2'],
'b':['1','2','2','1','2','2']})
>>> df
a b
0 l1 1
1 l2 2
2 l1 2
3 l2 1
4 l1 2
5 l2 2
l1
應與1
而l2
應該對應於2
。 我想創建一個新列'c
',使得對於每一行,c = 1
如果a = l1
和b = 1
(或a = l2
和b = 2
)。如果a = l1
和b = 2
(或a = l2
和b = 1
)則爲c = 0
。
產生的數據幀應該是這樣的:
a b c
0 l1 1 1
1 l2 2 1
2 l1 2 0
3 l2 1 0
4 l1 2 0
5 l2 2 1
我的數據幀是非常大的,所以我真的在尋找最有效的方式做到這一點使用大熊貓。
有趣的是,您的解決方案明顯不那麼普遍。這裏有趣的是,與簡單的lambda相比,'str [1]'方法有多糟糕。 –
你沒有測試'(df.a =='l2')==(df.b =='2')'。 –
@StevenRumbalski我假設示例輸入已完成,並且'a'只有值'l1'或'l2'和'b'只有''1''或''2''。如果'a!='l1',它必須是''''。 – chlunde