python - 为什么在合并这两个数据帧时,其中一列充满了 NAN?
问题描述
我想合并两个数据框。它们具有相同的行和不同的列。有一列匹配:“ID”。
数据框 1 有 17 列。数据框 2 有 2 列。
我想用 DF1 的 17 列和 DF2 的一列创建一个 Dataframe 3。
例如:
DF1。
ID COL1
051 D
041 A
039 Z
031 H
021 H
074 M
021 M
044 I
025 N
030 N
008 N
073 N
030 N
020 K
DF2。
ID MONTH
051 07
041 07
039 09
031 10
021 09
074 01
021 02
044 01
025 10
030 03
008 03
073 03
030 03
020 03
现在我使用此代码进行合并
df3 = df1.merge(df2, left_on= ["ID",df1.index], right_on = ["ID", df2.index], how = "left").drop('key_1',1 )
结果是
DF3。
ID MONTH COL1
051 07 nan
041 07 nan
039 09 nan
031 10 nan
021 09 nan
074 01 nan
021 02 nan
044 01 nan
025 10 nan
030 03 nan
008 03 nan
073 03 nan
030 03 nan
020 03 nan
这是怎么回事?
解决方案
pd.merge
如果您要加入的两个列名相同,请尝试使用此方法
df3 = pd.merge(df1,df2, on=["ID"],how = "left")
df3.drop_duplicates(subset=["ID"],inplace=True)
推荐阅读
- python - 使用自定义 where 子句的 SQLAlchemy 批量更新
- javascript - 如何在javascript中使用正则表达式匹配这个特定的字符串,如果匹配则使其为空
- java - 如何在没有桌面环境的情况下从 Linux shell 运行 Java Swing 应用程序?
- javascript - Reactjs 输入上传不返回本地 URL
- database - 如何获取 Laravel 中表的每条记录的多列中两个单元格的总和
- jquery - 我们如何将 URL 分配给随机出现的相应图像?
- java - 使用千分尺、弹簧靴和普罗米修斯测量每秒请求数
- symfony - 如何在 symfony4 中使用与 3 个字段的多对多关系
- javascript - 开玩笑的模拟计时器没有按预期异步工作;如何使这个测试通过?
- flutter - 如何在 Flutter 中为 LinearProgressIndicator 添加边框/角半径?