【问题标题】:Bind two pandas dataframes containing lists绑定两个包含列表的熊猫数据框
【发布时间】:2020-03-24 09:05:09
【问题描述】:

我有两个具有相同列名和索引名的数据框,每个单元格中都包含列表,如下所示:

df1
   A      B
c [1,2] [2,5]

d [3,5] [4,1]

df2
   A      B
c [2,3] [4,5]

d [2,3] [5,3]

我希望只有一个数据框,如下所示:

df_1&2
      A         B
c [1,2,2,3] [2,5,4,5]

d [3,5,2,3] [4,1,5,3]

有什么建议吗?

另一件事;如何仅在索引重复的地方加入数据帧并跳过唯一的:

  df1
       A      B
    c [1,2] [2,5]

    e [3,5] [4,1]

    df2
       A      B
    c [2,3] [4,5]

    f [2,3] [5,3]

结果将是:

   df1&2

          A         B
    c [1,2,2,3] [2,5,4,5]

【问题讨论】:

    标签: pandas list dataframe join


    【解决方案1】:

    通过+ 加入DataFrame,只需要相同的索引值,并且只有DataFrames 中的列表填充的列:

    df = df1 + df2
    print (df)
                  A             B
    c  [1, 2, 2, 3]  [2, 5, 4, 5]
    d  [3, 5, 2, 3]  [4, 1, 5, 3]
    

    编辑:

    idx = df1.index.intersection(df2.index)
    df = df1.loc[idx] + df2.loc[idx]
    

    【讨论】:

    • 某些索引(和对应的列表)仅存在于 df1 中,而其中一些仅存在于 df2 中。是否可以给出一个条件,仅加入两个数据帧中都存在的基于 od 索引的列表并跳过唯一的索引?
    • @Kuki - 你能更改这些数据吗?
    猜你喜欢
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    相关资源
    最近更新 更多