我有一个csv,其中有两列“id”和“results”。一个“id”可以以相同或不同的值重复出现在csv上。我想按每一列对csv进行分组,并计算具有“results”的最大长度的id。
输入CSV
id, result
Test10001, 400
Test10001, 404
Test10001, 200
Test10002, 404
Test10002, 404
Test10003, 400
字符串
我想到了使用dataframes,到目前为止已经做到了下面。
grouped_data = data.groupby('id')['result'].apply(list)
型
output -分组csv
id
Test10001 [400, 404, 200]
Test10002 [404, 404]
Test10003 [400]
型
现在我想得到哪个“id”具有列表的最大长度。我很难得到每一个的长度,因为grouped_data的类型是<class 'pandas.core.series. Series'>。
请在这件事上帮助我。提前感谢!
3条答案
按热度按时间4zcjmb1e1#
你可以通过--来得到groupby操作中列表的长度
字符串
然后你可以使用argmax-
型
或者按最大长度进行过滤-
型
nwnhqdif2#
使用
groupby
的方式如下字符串
您可以使用reset_index()函数来获得适当的结果
owfi6suc3#
如果你想在没有数据框架的帮助下做到这一点,它就像...
字符串
输出:
型
这里假设只有一个id与最大长度匹配。如果有一个以上,那么输出可能不符合预期。
如果可能有多个id符合条件那么。。
型