簡體   English   中英

通過基於某些條件連接其他兩個列在 Pandas dataframe 中創建新列

[英]Creating new column in a Pandas dataframe by concatenating two other column based on some condition

我有一個 dataframe 如下所示(僅顯示相關列):

col1          col2
NaN           NaN
NaN           abc@123.com | pqr@234.com
ppp@987.com   NaN
zzz@765.com   aaa@123.com | mmm@456.com

我想創建一個基於連接 col1 和 col2 的新列,其中“|”作為分隔符。 NaN 值應該被忽略

預期 output:

col1          col2                          new_col
NaN           NaN                           NaN
NaN           abc@123.com | pqr@234.com     abc@123.com | pqr@234.com
ppp@987.com   NaN                           ppp@987.com
zzz@765.com   aaa@123.com | mmm@456.com     zzz@765.com | aaa@123.com | mmm@456.com

讓我們嘗試stack

df['New']=df.stack().groupby(level=0).agg('|'.join)

df
          col1                     col2                                  New
0          NaN                      NaN                                  NaN
1          NaN  abc@123.com|pqr@234.com              abc@123.com|pqr@234.com
2  ppp@987.com                      NaN                          ppp@987.com
3  zzz@765.com  aaa@123.com|mmm@456.com  zzz@765.com|aaa@123.com|mmm@456.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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