[英]Creating a new column based on multiple columns
我正在嘗試根據df
中存在的其他列創建一個新列。
如果 A ~ E 列中至少有一個1
,我的新列col
應該是1
。
如果 A ~ E 列中的所有值都是0
,那么col
的值應該是0
。
我附上了圖片以便更好地理解。
使用 python 而不使用loop
的最有效方法是什么? 謝謝。
如果需要測試所有列,請使用DataFrame.max
或DataFrame.any
為整數以實現True/False
到1/0
映射:
df['col'] = df.max(axis=1)
df['col'] = df.any(axis=1).astype(int)
或者如果需要A:E
之間的測試列添加DataFrame.loc
:
df['col'] = df.loc[:, 'A':'E'].max(axis=1)
df['col'] = df.loc[:, 'A':'E'].any(axis=1).astype(int)
如果需要按列表指定列,請使用子集:
cols = ['A','B','C','D','E']
df['col'] = df[cols].max(axis=1)
df['col'] = df[cols].any(axis=1).astype(int)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.