【问题标题】: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

【问题讨论】:

标签: python pandas dataframe


【解决方案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
猜你喜欢
  • 2015-10-26
  • 2015-05-19
  • 2017-01-31
  • 2019-09-26
  • 2021-11-16
  • 2021-08-23
  • 2018-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多