我有一個 pandas 資料框,我想根據我的資料框中的變數值是否等于串列中的值來創建一個新的虛擬變數。
df = pd.DataFrame({'variable1':[1,2,3,4,5,6,7,8],
'variable2':['a', 'r', 'b', 'w', 'c', 'p', 'l', 'a']})
my_list = ['a', 'b', 'c', 'd', 'e']
如何為資料幀創建一個新的虛擬變數,稱為變數 3,如果變數 2 存在于串列中則等于 1,否則等于 0?
我嘗試使用:
df['variable3'] = np.where(
dataset['variable2'] in my_list,
1, 0)
但是,這會引發 ValueError:Series 的真值是不明確的。
我一直在尋找這個問題的答案很長一段時間,但沒有一個足以解決這個問題。
你有什么建議嗎?
uj5u.com熱心網友回復:
您快到了。當您要檢查資料框列的值是否與某個串列或另一個資料框列匹配時,可以使用df.isin.
df['variable3'] = np.where(
df['variable2'].isin(my_list),
1, 0)
df
Out[16]:
variable1 variable2 variable3
0 1 a 1
1 2 r 0
2 3 b 1
3 4 w 0
4 5 c 1
5 6 p 0
6 7 l 0
7 8 a 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489744.html
上一篇:熊貓不是全部,而是兩個True
下一篇:如何在熊貓中逐行計算平均絕對偏差
