【问题标题】:Add a column to pandas dataframe based on value present in different dataframe [duplicate]根据不同数据框中存在的值向熊猫数据框添加一列[重复]
【发布时间】:2021-11-24 11:33:59
【问题描述】:

我有 2 个数据框,如下所示(A 和 B):

     ID    color
0     5    red
1     6    blue
2     7    blue
3     8    NaN
4     9    green
5     10   NaN

     ID    characteristic
0     7    tall
1     9    short
2     24   short
3     1    tall
4     11   medium
5     10   tall

对于 df A 中的每个 ID,我想检查数据帧 B 中是否有相应的 ID。如果有对应的 ID,则 df A 中的新列的值应为 True,如果没有则为 False

输出应如下所示:

     ID    color  df_b_presence
0     5    red    False
1     6    blue   False
2     7    blue   True
3     8    NaN    False
4     9    green  True
5     10   NaN    True

【问题讨论】:

  • 抱歉,我误解了这里的问题,看起来您只需要一张isin 支票。

标签: python pandas


【解决方案1】:

你可以使用.isin(),如下:

A['df_b_presence'] = A['ID'].isin(B['ID'])

结果:

print(A)

    ID  color  df_b_presence
0   5    red          False
1   6   blue          False
2   7   blue           True
3   8    NaN          False
4   9  green           True
5  10    NaN           True

【讨论】:

  • 很好奇这是否满足我认为 OP 的 per-id 要求......虽然不确定
  • @cs95 我对 per-id 的解释是检查数据框 AID 上的每一行,以获取数据框 ID 中的相同 ID。是的,但同样不确定。
  • @Bill 似乎不完全正确。这个问题是从另一个数据框中获取一些列值。这个问题是关于检查另一个数据框中是否存在相同的键/值。
  • 我猜你是对的吧!
猜你喜欢
  • 1970-01-01
  • 2017-01-14
  • 2021-06-11
  • 2020-12-27
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 2021-06-25
  • 1970-01-01
相关资源
最近更新 更多