簡體   English   中英

基於同一 dataframe 的另一列更新 pandas 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.

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