如果两列中的值相同,则合并熊猫中的单元格

Posted

技术标签:

【中文标题】如果两列中的值相同,则合并熊猫中的单元格【英文标题】: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 数据框来实现这一点 有人可以帮帮我吗?

【问题讨论】:

请以良好的格式添加您的数据,以便人们可以复制该数据并执行操作以帮助您。 【参考方案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]

【讨论】:

以上是关于如果两列中的值相同,则合并熊猫中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何将两列与数据合并,如果一列的单元格为空,则相邻的单元格已满?

如何将EXCEL表格中的同一列有相同的内容 合并成一个单元格?

Excel - 如何比较 2 列中的单元格,然后如果 B 列匹配,则使用 B 列中匹配单元格旁边的 C 列中的值?

Excel - 如果单元格包含列表中的文本,则返回另一个单元格的值

根据“如果单元格中的字符串”条件删除熊猫列中的行

如何为列中的单元格着色?熊猫,pygsheets