0

我有一个数据框:

df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
   'foo', 'bar', 'foo', 'foo'],
   'B' : ['one', 'one', 'two', 'three',
   'two', 'two', 'one', 'three'],
   'C' : np.random.randn(8), 'D' : np.random.randn(8)})

创建:

     A      B         C         D
0  foo    one -0.151044  2.235048
1  bar    one -0.732017  0.415994
2  foo    two -1.203263 -1.178483
3  bar  three  0.329306  0.356476
4  foo    two  0.512176 -2.640831
5  bar    two -0.997254  0.504314
6  foo    one  0.434732  0.751182
7  foo  three -0.558386 -1.563932

可以按 A 或 B 分组,将 C 和 D 的值作为新数据框中的列表给出吗?group_concat 在 mysql 中的工作方式。

grouped = df.groupby('A').apply(WhatFunctionCanIUse)
4

1 回答 1

1

DataFrame 中的列表通常不方便使用。可能有一种更自然的方式来做你最终想要做的任何事情。如果您详细说明,也许有人会提出更惯用的解决方案。

但是,要回答您的问题,您可以申请list.

In [26]: df.groupby('A').C.apply(list)
Out[26]: 
A
bar                     [-0.732017, 0.329306, -0.997254]
foo    [-0.151044, -1.203263, 0.512176, 0.434732, -0....
dtype: object
于 2013-04-20T15:29:16.697 回答