【发布时间】:2021-03-15 10:16:17
【问题描述】:
我正在研究两个大数据库:
我想join County 和 State 和 Year 的两个数据框,但是 dataM 必须保留所有列,并且只获得数据的剥夺指数百分比D。另外,我想drop 一个或另一个上不存在县的行。例如,在 dataM 上我们有 AK 及其县,但在 dataD 上没有 AK,所以我想 drop dataM 上的所有这些行。同样,如果县和州同时存在,我想将剥夺指数百分比分配给该县在该州的所有行。我尝试了所有方法,但我无法让它工作。
我尝试了多种形式:
dataM = pd.merge(dataM, dataD, how='right', left_on=['County', 'State'], right_on=['County', 'State'])
通过过滤两个数据框上的鲍德温县,我得到了这个:
如果县和州都存在于两个数据框中,我不明白为什么我会得到 NaN。请帮帮我。
【问题讨论】:
-
问题似乎是你使用右连接,使用左连接即 how='left' 即 dataM = pd.merge(dataM, dataD, how='left', on=['County', '状态'])
-
它显示了县和州的正确数据,但 Dep Index 仍然显示 NaN
-
对于数据框 dataD 中没有匹配国家和州的数据行,剥夺索引将为 NaN
-
是的,我对此进行了测试:dataM = dataM[dataM['County'] == 'Baldwin County']
-
用两个数据框上的鲍德温县过滤结果,它不应该返回 NaN
标签: python pandas dataframe jupyter-notebook jupyter