代码之家  ›  专栏  ›  技术社区  ›  pookie

熊猫在所有数据帧中获得具有相同ID的所有记录

  •  4
  • pookie  · 技术社区  · 7 年前

    我有一个数据帧列表。每个数据帧都有一个名为 probe_id . 我想让所有的行 探头id 探头id .

    probe_id '0001' . 在这种情况下,我将返回该行。如果 探头id 任何数据帧中都缺少,我想跳过该行。

    因此,如果4个数据帧中的每一个都有2列,那么结果应该是一个新的数据帧,其中有8列记录 探头id 存在于所有4个数据帧中。

    z = reduce(lambda x, y: pd.merge(x, y, on='PROBE_ID', how='inner'), dataframes)

    它似乎有效,但我不确定,而且有太多的记录需要检查。我不完全有信心使用 reduce lambda ,因此,如果有人能告诉我这是否正确,如果不正确,我将如何实现我的目标,我将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  1
  •   cs95 abhishek58g    7 年前

    concat ,而且如果它们共享公共列,我认为您可以只恢复一次,多次保存相同的值是多余的

    df_out = pd.concat([
        x.set_index('dataframes') for x in dataframes
    ], axis=1, join ='inner').reset_index()