簡體   English   中英

從 pandas dataframe 中的列創建新列

[英]Creating new column from columns in pandas dataframe

我有 2 pandas 數據幀df1df2

df1

ID 姓名 年齡
1個 16
2個 17

df2

ID 分數
1個 16
2個 8個

然后我合並兩個數據框:

mergedf = df1.merge(df2, on='id', how='left')

畢竟我將創建一個新的 dataframe,它應該有來自df1的列 id 和名稱,來自df2的列 score 以及一個新的列 (diff),它將是 score 和 age 之間的差異,另一個名為 status 的列將是以下結果if 'age' == 'score' then 'OK' else 'false'

這是新的代碼 dataframe

newDF = mergedf[['id','name','score','diff', 'status']]

但我仍然不清楚我應該如何嵌套這段代碼

if 'age' == 'score' then 'OK' else 'false'

生成新的列差異和狀態。

使用diff計算列之間的差異,然后使用numpy.where來滿足您的條件

mergedf = df1.merge(df2, on='id', how='left')
mergedf['diff'] = mergedf[['age', 'score']].diff(axis=1)['score']
mergedf['status'] = np.where(mergedf['diff'] == 0, 'OK', False)
print(mergedf)

   id  name  age  score  diff status
0   1   Joe   16     16     0     OK
1   2  Jane   17      8    -9  False

暫無
暫無

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

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