python - 通过python根据列上的匹配合并不同的3个文件
问题描述
我有 3 个不同的文件,例如
p1:
x y
1 a c
2 b c
3 d c
4 d c
p2:
x1 y1
1 b n
2 a n
3 a n
我有不同的文件(p3),其中有一堆 x id,如 1a、2b 等,我想根据 x 上的 id 指示 y 列是否对应 n 或 c。
我试过了
df3 = pd.merge(p3,p2,on='x1',how='right') or
df3 = pd.merge(p3,p1) but it did not work.
你可以帮帮我吗?
解决方案
有很多方法可以做到这一点,并且取决于数据的大小。我会做以下事情。
连接 p1 和 p2
创建一个将 ID 映射到值的字典
适用于 p3
p2.rename(列={“x1”:“x”,“y1”:“y”},就地=真)
p = pd.concat([p1, p2], 轴=0)
dictValues = dict(zip(p["x"].tolist(), p["y"].tolist()))
p3["y"] = p3["x"].map(dictValues)
推荐阅读
- python - brew卸载python错误:拒绝卸载
- python - 从字符串Python中删除括号和数字
- python - 如果字段名称是字符串变量,如何从数据包层获取字段值?
- python - 如何计算 Pandas DataFrame 中的利润率
- sql - 自联接 Oracle SQL
- c++ - 客户端上的 Grpc 访问冲突
- flutter - 如何在颤振中使用 MultipartFile 将资产图像发布到服务器
- java - 碰撞检测仅在物体正好击中中心时起作用
- python - Dynamically adding descriptors to a class
- add - Typo3 9 RTE CK_Editor 4 data-attribute in span 保存后删除