当前位置:  开发笔记 > 编程语言 > 正文

用数据帧计算出现次数?

如何解决《用数据帧计算出现次数?》经验,为你挑选了1个好方法。

我有以下内容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]]

知道如何获得?



1> jezrael..:

你可以用groupby与聚集size,然后reset_index和最后转换到numpy array通过DataFrame.valuesnumpy.ndarray.tolist:

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=Falsegroupby:

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]]

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有