如何将熊猫数据框的行按列的值分组?
问题描述:
如何将熊猫数据框的行按列的值分组?如何将熊猫数据框的行按列的值分组?
假设我们有一个数据帧称为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是一个选项。但是对于我正在处理的超大型数据集来说,它速度很慢。这就是为什么我认为把它转换成列表字典可能会更好。
谢谢。
答
看来你需要:
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']]}
这是相关的:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_dict.html –