![](/img/trans.png)
[英]Pandas dataframe: Creating a new column based on data from other columns
[英]Creating new column from columns in pandas dataframe
我有 2 pandas 數據幀df1和df2
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.