【问题标题】:Comparing two dataframe values in python比较python中的两个数据框值
【发布时间】:2016-08-24 15:30:23
【问题描述】:

我有两个数据框 df1['LicId']df2['LicId']

df1['LicId'] 永远只有一个值

    LicId
0   abc1234

但是df2['LicId'] 会有多个ID

    LicId
0   abc1234
1   xyz2345

我的任务是将df1['LicId']df2['LicId'] 进行比较,并仅在两者匹配时执行代码。

我试过了:

if df1['LicId'][0]==df2['LicId'][0]:
    remaining code

但是,这将只检查abc1234 - 它必须检查df2 的所有索引值。以后可能我df1里也有xyz2345

谁能告诉我如何处理这个问题?

【问题讨论】:

  • 抱歉,您的问题措辞非常糟糕。我不知道你想做什么。
  • 抱歉 - 如何将一个数据帧的值与其他数据帧的值进行比较?我必须执行我的代码,只有这两个值相等。
  • 您能否发布数据帧的样本以及所需的输出?
  • 如果df2比较小,可以直接勾选if df1.LicId[0] in df2.LicId.values: ...,或者直接使用mergeif len(df1.merge(df2)): ...

标签: python pandas indexing compare


【解决方案1】:

你可以用isin()匹配值:

df1 = pd.DataFrame({'LicId':['abc1234', 'a', 'b']})
df2 = pd.DataFrame({'LicId':['abc1234', 'xyz2345', 'a', 'c']})

df1:

     LicId
0  abc1234
1        a
2        b

df2:

     LicId
0  abc1234
1  xyz2345
2        a
3        c

匹配值:

if len(df2.loc[df2['LicId'].isin(df1['LicId'])]) > 0:
    print(df2.loc[df2['LicId'].isin(df1['LicId'])])
    #remaining code

输出:

     LicId
0  abc1234
2        a

【讨论】:

  • 作为旁注isin 将需要与数据框匹配的索引和列标签
猜你喜欢
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
相关资源
最近更新 更多