2017-08-08 121 views
2

如何将熊猫数据框的行按列的值分组?如何将熊猫数据框的行按列的值分组?

假设我们有一个数据帧称为DF:

A B C 
1 1a 1b 
1 1c 1d 
1 1e 1f 
2 2a 2b 
2 2c 2d 
3 3a 3b 
3 3c 3d 

我想使用GROUPBY创建以下:

1: {[1a, 1b], 
    [1c, 1d], 
    [1e, 1f]} 

2: {[2a,2b], 
    [2c, 2d]} 


3: {[3a,3b], 
    [3c. 3d]} 

我不认识的.loc是一个选项。但是对于我正在处理的超大型数据集来说,它速度很慢。这就是为什么我认为把它转换成列表字典可能会更好。

谢谢。

+0

这是相关的:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_dict.html –

回答

3

看来你需要:

df = df.groupby('A')['B','C'].apply(lambda x: x.values.tolist()).to_dict() 
print (df) 
{1: [['1a', '1b'], ['1c', '1d'], ['1e', '1f']], 
2: [['2a', '2b'], ['2c', '2d']], 
3: [['3a', '3b'], ['3c', '3d']]}