【问题标题】:find a record across multiple python pandas dataframes在多个 python pandas 数据帧中查找记录
【发布时间】:2018-10-01 17:09:27
【问题描述】:

假设我有如下三个数据帧,我想找出特定记录存在于哪些数据帧中。

这是dataframe1 (df1)

index | name | acct_no | country
2 | alex | 112233 | USA
3 | rider | 223344 | Mexico

这是dataframe2(df2)

index | name | acct_no | country
2 | alex | 112233 | USA
3 | keith | 993344 | Brazil

这是dataframe3(df3)

index | name | acct_no | country
2 | alex | 112233 | USA
3 | hopper | 444444 | Canada

因此,如果我运行以下代码,我可以找到有关单个数据帧的 acct_no 112233 的所有信息。

p = df1.loc[df1['acct_no']=112233]

但是,我想知道哪个代码可以帮助我找出 df1、df2、df3 中存在 acct_no 112233

【问题讨论】:

  • 你想对输出做什么?
  • 可能是df1.loc[~df1['acct_no']==112233].isin(array)]df1[[df1['acct_no']==112233].isin([0, 1, 2])
  • 你是对的。我只是为了检查记录是否存在于所有数据框中@Georgy。
  • 为什么不创建一个大的DataFramedf = pd.concat([df1, df2, df3], keys=['df1', 'df2', 'df3'])
  • 我不想对输出做任何事情,只想知道记录是否存在于任何数据框中。 @ALollz

标签: python pandas dataframe


【解决方案1】:

要知道元素是否在数据框的'acct_no' 列中是:

>> (df1['acct_no']==112233).any()
True

您可以通过以下方式同时检查所有内容:

>> all([(df['acct_no']==112233).any() for df in [df1, df2, df3]])

True

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2021-07-20
    • 1970-01-01
    • 2018-07-16
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多