簡體   English   中英

Python Pandas:根據另一個數據框中包含的值更新數據框系列值

[英]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.

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