繁体   English   中英

用数据帧计算出现次数?

[英]count occurrences with dataframe?

我有以下Dataframe

               fk  name
0              105  Coca-Cola1 
1              105  Coca-Cola1
2              106  Coca-Cola2
3              115  Coca-Cola5
4              115  Coca-Cola5
5              115  Coca-Cola5
6              108  Coca-Cola8
7              105  Coca-Cola1

我想计算出现频率:

[[105, Coca-Cola1, 3],
 [106, Coca-Cola2, 1],
 [115, Coca-Cola5, 3],
 [108, Coca-Cola8, 1]]

知道如何获得?

你可以使用groupby聚合size ,然后使用reset_index ,最后使用numpy.ndarray.tolist通过DataFrame.values转换为numpy array

df = df.groupby(['fk','name']).size().reset_index().values.tolist()
print (df)
[[105, 'Coca-Cola1', 3], 
 [106, 'Coca-Cola2', 1], 
 [108, 'Coca-Cola8', 1], 
 [115, 'Coca-Cola5', 3]]

如果顺序重要,则将参数sort=False添加到groupby

df = df.groupby(['fk','name'], sort=False).size().reset_index().values.tolist()
print (df)
[[105, 'Coca-Cola1', 3], 
 [106, 'Coca-Cola2', 1], 
 [115, 'Coca-Cola5', 3], 
 [108, 'Coca-Cola8', 1]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM