熊猫将具有相同索引的一列值组合到列表中[重复]
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】:使用groupby
和to_string
print(df.groupby('Animal')['Color'].agg(', '.join).to_string())
Animal
BIRD YELLOW
CAT BLACK, ORANGE
DOG WHITE
【讨论】:
您好,非常感谢您的回复。您所做的方式将两个值与相同的索引结合起来。但是结果仍然会显示“Animal”列,我只想要行的值,并且在 Animal 和 Color 列之间,只添加“,”。就像我在问题中展示的方式一样。 使用header=None
即print(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以上是关于熊猫将具有相同索引的一列值组合到列表中[重复]的主要内容,如果未能解决你的问题,请参考以下文章