python - 加入两个有条件的数据框
问题描述
我尝试根据邮政编码合并两个数据框。但我只有一个国家/地区的邮政编码,所以我想确定,其他国家/地区的其他行在合并列中收到 NaN。
df 看起来像这样
client age-group category city zip country
4 18-24 basic atown 12345 fooland
5 18-24 basic atown 12345 fooland
6 <18 basic atown 12345 fooland
5 <18 premium ctown 12345 belgium
2 <18 basic atown 12345 fooland
7 <18 basic atown 12345 fooland
另一个是这样的:
zip state population ...
11111 a 17800
11112 a 15045
12345 a 13215
12349 b 5401
第二个df中的zip是唯一的
有没有比使用 for 循环更快更简单的方法来合并它们df.iterrows()
?
解决方案
merge
how='left'
应该工作:
df1.merge(df1[df1['country']=='fooland'].merge(df2, on='zip', how='left'), on=df1.columns.to_list(), how='left')
df1
你想用 s 填充的数据框在哪里NaN
。
推荐阅读
- javascript - 链接firebase函数的问题
- javascript - 无法从委托函数访问类属性
- python - 使用 CNN+LSTM 模型和 TimeDistributed 层包装器的 Keras 时间序列预测
- mysql - 如何在 typeorm 中建立 OneToMany 关系?
- kendo-ui - 从选定的计划项目中获取选定的标题和描述信息
- vim - VSCode Vim 搜索和替换捕获组
- python - 将作为序数的字母和数字组合在一起
- android - 如何在Android Q(10)中以编程方式访问剪贴板数据?
- google-cloud-dataflow - FileIO.read() 性能很差
- java - 尝试解决它,但没有将任何内容打印到控制台