【问题标题】:concat two data frames and keep no-common values adding a Na value连接两个数据帧并保留添加 Na 值的非公共值
【发布时间】:2021-12-09 10:20:09
【问题描述】:

我想联系独立数据框中的两列。有一些共同的价值观(大部分)但不是全部。这是一个简单的命令,但我不知道输出的方式。

我需要的是:

  1. 一个共同的价值观
  2. 如果在另一个数据集中找不到来自一个数据集的一个值,则添加一个指示符(例如:“未找到”或空值即可)
  3. 我不想失去或耗尽任何价值。

示例。

first = pd.DataFrame({"id1": ["K0","K4" ])
second = pd.DataFrame({"id2": ["K0", "K2", "K3"], "v": [4, 6,3]})


# Output:

Id1       Id2
k0        k0
Not found K2
Not found K3
K4        Not found
...

根据文档,命令应该是

pd.concat([first, second["id2"]],axis=1,)

但这会返回类似

Id1       Id2
k0        k0
K3        K2
K4        Na
...

我做错了什么?

我已确保两个输入列中都存在错误匹配的值

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    让我们尝试合并

    out = first.merge(second[['id2']],left_on='id1',right_on='id2',how='outer').fillna('not found')
    Out[186]: 
             id1        id2
    0         K0         K0
    1         K4  not found
    2  not found         K2
    3  not found         K3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-11
      • 2021-11-27
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      相关资源
      最近更新 更多