熊猫将具有相同索引的一列值组合到列表中[重复]

Posted

技术标签:

【中文标题】熊猫将具有相同索引的一列值组合到列表中[重复]【英文标题】:Pandas combining one column's values with same index into list [duplicate] 【发布时间】:2021-01-04 06:20:26 【问题描述】:

我有一个如下所示的 Pandas DF,我正在努力以好看的格式打印它... 有人可以告诉我如何组合来自同一列值的这两个值吗?

data = 'Animal':['DOG','CAT','CAT','BIRD'],
        'Color':['WHITE','BLACK','ORANGE','YELLOW']
df = pd.DataFrame(data)
df

我希望print 结果完全如下:

DOG, WHITE
CAT, BLACK, ORANGE
BIRD, YELLOW

【问题讨论】:

打印(df.to_string()) ***.com/questions/19124601/… 【参考方案1】:

使用groupbyto_string

print(df.groupby('Animal')['Color'].agg(', '.join).to_string())


Animal
BIRD           YELLOW
CAT     BLACK, ORANGE
DOG             WHITE

【讨论】:

您好,非常感谢您的回复。您所做的方式将两个值与相同的索引结合起来。但是结果仍然会显示“Animal”列,我只想要行的值,并且在 Animal 和 Color 列之间,只添加“,”。就像我在问题中展示的方式一样。 使用header=Noneprint(df.groupby('Animal')['Color'].agg(', '.join).to_string(header=None)) @vem 但是打印功能后,“Animal”和“Color”之间还是有这么多空格。我实际上想将它们与一个逗号和一个空格结合起来。即猫,黑色,橙色@Manakin 尝试print(df.groupby('Animal')['Color'].agg(','.join).reset_index().agg(','.join,1).to_string(header=None,index=None)) 您需要将所有列聚合到一个字段中然后打印,但性能不会很好。 @vem

以上是关于熊猫将具有相同索引的一列值组合到列表中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将具有相同索引的熊猫系列列表转换为字典

如何将一个熊猫数据框的一列与另一个数据框的每一列相加?

如何将一列的列值组合到 MySQL 中的另一列中?

如何根据作为值列表的列值扩展熊猫数据框[重复]

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

如何将多列重新排列为具有相同索引的一列