![](/img/trans.png)
[英]Pandas : Updating multiple column in a dataframe based on values from another dataframe
[英]Python pandas: updating dataframe series values based on values contained in another dataframe
我將python和pandas一起使用,並且有dataframe data
。 我還有另一個數據框missing_vals
。 missing_vals
包含一個field
列和一個key
列。 field
列包含與data
列名稱相對應的元素,即data.columns ~= missing_vals['field']
。 該映射,然而,這不是一個一對一(某些條目在missing_vals['field']
中不存在data.columns
。我做了交集操作照顧該並且得到了一個輸出陣列result
包含所有這都在值missing_vals['field']
和data.columns
。現在我想索引到data
使用的每個元素result
,檢查是否該列包含對應於該元素的值missing_vals['key']
和我嘗試使用for循環將其替換為NaN
,但是我知道這不是理想的方法,是否可以通過vector / lambda操作或其他數據框函數來實現呢?我真的很感謝您的幫助。
到目前為止,這是我的代碼:
for i in range(len(result)): field = missing_vals['field'][i] for j in range(data[field].size): if (data[field][j] == missing_vals['key'][i]): data.replace(data[field][j], np.nan)
謝謝
您應該真正發布示例輸入/輸出-這些內容很難用口頭解釋。 無論如何,我認為可以完全消除第二個循環。 你真的只需要做。
field = missing_vals['field'][i]
data[field].replace(missing_vals['key'][i], np.nan)
replace
方法用替換值替換所有出現的內容,如果不存在,則不執行任何操作。 不必自己遍歷各列來檢查是否存在要替換的值。 如果您發布有關數據幀的代表性示例,我可能會為您提供更多幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.