【问题标题】:Common elements in a dataframe column数据框列中的常见元素
【发布时间】:2018-06-11 12:32:06
【问题描述】:

我有一个 CSV 列表,我目前正在 Pandas 的数据框中读取该列表。我需要在数据框的一列中找到共同元素。

 df1 = pd.read_csv("example.csv")
 df2 = pd.read_csv("example1.csv")
 val = np.intersect1d(example[' column'], example1[' column'])

我怎样才能为多个文件做到这一点。

【问题讨论】:

  • 你到底是什么意思?您是要查找文件列表中所有对的共同元素还是可以在所有文件中找到的元素? (你可以edit你的问题包括信息)
  • 你也可以使用 pandas 数据框的内部合并

标签: python pandas intersection


【解决方案1】:

您可以通过解压可迭代对象在多个集合上使用set.intersection。来自@raulferreira 的数据。

res = set.intersection(*(set(df['val']) for df in [df1, df2, df3]))

print(res)
# {'A'}

【讨论】:

    【解决方案2】:

    你可以这样做:

    df1 = pd.DataFrame([
        (0, "A"),
        (1, "B"),
        (2, "C"),
        (3, "D")
    ], columns=["id", "val"])
    
    df2 = pd.DataFrame([
        (0, "A"),
        (1, "A"),
        (2, "A"),
        (3, "D")
    ], columns=["id", "val"])
    
    df3 = pd.DataFrame([
        (0, "A"),
        (1, "A"),
        (2, "A"),
        (3, "A")
    ], columns=["id", "val"])
    
    from functools import reduce
    
    dfs = [df1, df2, df3]
    
    val = reduce(
        lambda acc, x: np.intersect1d(acc, x['val']),
        dfs,
        dfs[0]['val']
    )
    
    val
    
    #  array(['A'], dtype=object)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 2013-11-03
      相关资源
      最近更新 更多