[英]Pandas: Creating new column based on values from existing column
我有一個 pandas dataframe 有兩列如下:
A B
Yes No
Yes Yes
No Yes
No No
NA Yes
NA NA
我想根據這些值創建一個新列,這樣如果任何列值是Yes
,新列中的值也應該Yes
。 如果兩列都具有值No
,則新列也將具有值No
。 最后,如果兩列都具有值NA
,則 output 也將具有新列的NA
。 上述數據的示例 output 為:
C
Yes
Yes
Yes
No
Yes
NA
我在 dataframe 的長度上編寫了一個循環,然后檢查每個值以獲得一個新列。 但是,10M 的記錄需要很長時間。 有沒有更快的pythonic方法來實現這一點?
就像是
df.fillna('').max(axis=1)
Out[106]:
0 Yes
1 Yes
2 Yes
3 No
4 Yes
5
dtype: object
嘗試:
(df == 'Yes').eval('A | B').astype(str).mask(df['A'].isna() & df['B'].isna())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.