![](/img/trans.png)
[英]How to update a column in pandas DataFrame based on column from another DataFrame
[英]Update column in pandas dataframe based on another column of the same dataframe
我正在努力更新 dataframe 列。 這是我的 dataframe 的示例:
data1={'UserId': [1, 2, 3], 'OldAnswer': [4, 4, None]}
df1 = pd.DataFrame.from_dict(data1)
data2={'UserId': [1, 2, 3], 'NewAnswer' : [4, 5, None]}
df2 = pd.DataFrame.from_dict(data2)
merged = pd.merge(df1, df2, on ='UserId', how='outer')
這給了我:
用戶身份 | 老答案 | 新答案 |
---|---|---|
1 | 4 | 4 |
2 | 4 | 5 |
3 | 鈉 | 鈉 |
現在我想用行上的“NewAnswer”更新“OldAnswer”,但是當我檢查兩列之間的差異時,它說在第三行,OldAnswer 和 NewAnswer 是不同的。 以下代碼給了我以下結果:
merged['OldAnswer'] != merged['NewAnswer']
> False
> True
> True
我以為我可以通過這樣做來更新我的專欄:
i = 0
while i < len(merged):
if merged['OldAnswer'].iloc[i] != merged['NewAnswer'].iloc[i]:
merged['OldAnswer'].iloc[i] = merged['NewAnswer'].iloc[i]
i += 1
else:
i += 1
但它也不起作用。
我現在感覺有點笨:下面的簡單代碼解決了它:
merged['OldAnswer'] = merged['NewAnswer']
merged.drop(columns='NewAnswer')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.