可以说我有一个像下面的DataFrame。

      A      B
0    text1   200
1    text2   200
2    text1   400
3    text2   500
4    text1   300
5    text1   600
6    text2   300

我想打印以下输出
     A             B
0    text1,text2   200
2    text1         400
3    text2         500
4    text1,text2   300
5    text1         600

没有顺序,我只想获取“A”列的文本标签以匹配“B”列中的值。据我所知,这必须使用df.groupby完成。我的努力还没有成功。希望你能回答我的问题。

最佳答案

您可以使用plain ol' sum 几乎做到这一点:

In [11]: df.groupby('B').sum()
Out[11]:
              A
B
200  text1text2
300  text1text2
400       text1
500       text2
600       text1

您可以将aggregate join 结合使用:
In [12]: df.groupby('B').agg(lambda x: ', '.join(x.values))
Out[12]:
                A
B
200  text1, text2
300  text1, text2
400         text1
500         text2
600         text1

关于python - Pandas 数据框分组显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18056473/

10-09 08:21