簡體   English   中英

Pandas 合並兩列共有的表

[英]Pandas merge tables with two columns in common

我正在研究兩個大數據庫:

數據M 在此處輸入圖像描述

數據D 在此處輸入圖像描述

我想通過CountyStateYear join兩個數據框,但是 dataM 必須保留所有列,並且只獲得 dataD 的剝奪指數百分比。 另外,我想drop一個或另一個上不存在縣的行。 例如,在 dataM 上我們有 AK 及其縣,但在 dataD 上沒有 AK,所以我想drop dataM 上的所有這些行。 同樣,如果縣和州都存在,我想將剝奪指數百分比分配給 state 中該縣的所有行。 我嘗試了everyting,買了我不能讓它工作。

我在許多 forms 中都試過這個:

dataM = pd.merge(dataM, dataD, how='right', left_on=['County', 'State'], right_on=['County', 'State'])

通過過濾兩個數據幀上的鮑德溫縣,我得到了這個:

在此處輸入圖像描述

如果縣和 state 存在於兩個數據框中,我不明白為什么我會得到 NaN。 請幫我。

我認為你需要一個內部連接 -

dataM = pd.merge(dataM, dataD[['depr_ind_col', 'County', 'State']], how='inner', left_on=['County', 'State'], right_on=['County', 'State'])

經過多次嘗試,我最終將縣和 state 連接為 dataM,並將其分配給新的列名“縣,州”。 然后,我只是使用了一個簡單的合並方法:

dataM = pd.merge(dataM , dataD, how='right', on=['County, State']) 
dataM = dataM[dataM['County, State'] == 'Baldwin County, GA']
dataM

在此處輸入圖像描述

這給了我一個正在尋找的結果。 在此之后,我將拆分縣和 state,然后在出生時刪除帶有 NaN 的行。

不過感謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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