【问题标题】:Merge cells in pandas if values in two column is same如果两列中的值相同,则合并熊猫中的单元格
【发布时间】:2020-04-13 11:09:41
【问题描述】:

就数据框而言,我有以下数据

data = pd.DataFrame({'colA': ['a', 'c', 'a', 'e', 'c', 'c'], 'colB': ['b', 'd', 'b', 'f', 'd', 'd'], 'colC':['SD100', 'SD200', 'SD300', 'SD400', 'SD500', 'SD600']})

我想要附加的输出 [在此处输入图片描述][2]

我想在 python 中使用 pandas 数据框来实现这一点 有人可以帮帮我吗?

【问题讨论】:

  • 请以良好的格式添加您的数据,以便人们可以复制该数据并执行操作以帮助您。

标签: python excel pandas merge conditional-statements


【解决方案1】:

这会将您的数据更新为您希望的样子

data=data.groupby(['colA','colB']).agg(list)

【讨论】:

    【解决方案2】:

    我不知道你为什么要做multindex,但你可以简单地sort_values或使用groupby

    import pandas as pd
    df = pd.DataFrame({"ColumnA":['a','c','a','e','c','c'],
                     "ColumnB":['b','d','b','f','d','d'],
                     "ColumnC":['SD100','SD200','SD300','SD400','SD500','SD600']})
    print(df)
    
          ColumnA ColumnB ColumnC
        0       a       b   SD100
        1       c       d   SD200
        2       a       b   SD300
        3       e       f   SD400
        4       c       d   SD500
        5       c       d   SD600
    
    df = df.sort_values(by=['ColumnA','ColumnB'])
    df.set_index(['ColumnA', 'ColumnB','ColumnC'], inplace=True)
    df
    

    【讨论】:

      【解决方案3】:

      你可以试试:

        Column A Column B Column C
      0        a        b    SD100
      1        c        d    SD200
      2        a        b    SD300
      3        e        f    SD400
      4        c        d    SD500
      5        c        d    SD600
      

      >>> df.groupby(['Column A', 'Column B']).agg(list)
                                      Column C
      Column A Column B
      a        b                [SD100, SD300]
      c        d         [SD200, SD500, SD600]
      e        f                       [SD400]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-05
        • 2021-09-01
        • 2019-09-11
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-06-22
        相关资源
        最近更新 更多