簡體   English   中英

基於多列創建新列

[英]Creating a new column based on multiple columns

我正在嘗試根據df中存在的其他列創建一個新列。
如果 A ~ E 列中至少有一個1 ,我的新列col應該是1
如果 A ~ E 列中的所有值都是0 ,那么col的值應該是0
我附上了圖片以便更好地理解。

使用 python 而不使用loop的最有效方法是什么? 謝謝。

在此處輸入圖像描述

如果需要測試所有列,請使用DataFrame.maxDataFrame.any為整數以實現True/False1/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM