【发布时间】:2021-04-20 22:28:42
【问题描述】:
我的问题是关于排序的。我在这里阅读了多个关于 groupby 数据帧排序的问题,但没有一个能解决我的问题,或者我做错了什么,因为我得到了不同的错误,例如 bool not callable 或 sort_values not available 或类似的东西。
我得到了一个包含一些信息和列的数据框。然后我根据 2 个字段正确创建了一个 groupby 数据框。
然后我这样做:
for name, group in mydfgrouped:
print(name, len(group))
我得到的输出是这样的:
('A', 'HH') 414
('A', 'LW') 1413
('A', 'ME') 1458
('A', 'MR') 339
('B', 'HH') 126
('B', 'LW') 288
('B', 'ME') 315
('B', 'MR') 54
('C', 'HH') 879
('C', 'LW') 672
('C', 'ME') 984
('C', 'MR') 186
('D', 'HH') 246
('D', 'LW') 756
('D', 'ME') 795
('D', 'MR') 255
我想根据 2 个标准对这个数据框进行排序:
- 群组
HH的len 降序顺序 - 命名升序顺序(这是为了以防“HH”出现平局)
所以想法是显示相同的列表,但根据HH 的值降序排序,但显示该名称的所有统计信息。
我的预期输出是:
('C', 'HH') 879
('C', 'LW') 672
('C', 'ME') 984
('C', 'MR') 186
('A', 'HH') 414
('A', 'LW') 1413
('A', 'ME') 1458
('A', 'MR') 339
('D', 'HH') 246
('D', 'LW') 756
('D', 'ME') 795
('D', 'MR') 255
('B', 'HH') 126
('B', 'LW') 288
('B', 'ME') 315
('B', 'MR') 54
如您所见,名称C 排在第一位,因为它在HH (879) 组中获得了最高的len。我想从C 获取所有组。最后一个是B,因为它获得了HH组中最低的len (126)
sort_values 和 sort 对我不起作用
【问题讨论】:
-
能否请您提供一小部分数据?我们不需要 16 行——大约 5 行就可以了。
标签: python python-3.x pandas dataframe numpy