根据某些列获取数据集中被调用次数最多的名称
Posted
技术标签:
【中文标题】根据某些列获取数据集中被调用次数最多的名称【英文标题】:Getting top most called names in a dataset based on certain columns 【发布时间】:2018-05-15 00:27:02 【问题描述】:我想知道是否有人可以帮助我解决一个小问题.. 我目前有一个包含大量行的海量数据集,我想创建一个较小的数据框,该数据框仅从较大的数据框中提取 2 列,以及在此实例“出现”中每个名称在该章节中出现的次数
下面的代码是我正在使用的
df1 = (Dec16.groupby(["BNF Chapter", "Name"]).size().reset_index(name="Occurrence"))
df1
它绘制了这个
BNF Chapter Name Occurrence
1 Aluminium hydroxide 2
1 Aluminium hydroxide + Magnesium trisilicate 2
1 Alverine 702
.......
21 Polihexanide 2
21 Potassium hydroxide 32
21 Sesame oil 22
21 Sodium chloride 222
我想得到的是某个章节出现次数最多的前 10 个名字,因为数据集太大了。
例如一个只拉取的数据框 第 1 章中最常见的 10 个名字
我该怎么做呢?
非常感谢!!!
【问题讨论】:
【参考方案1】:让我们用随机变量生成器做一个小例子。
import pandas as pd
import numpy as np
# we create random integers in 3 columns
df=pd.DataFrame(np.random.randint(0,10,(1000,3)), columns=["A","B","C"])
# we want to count the repetitions of C given A and B
result = df.groupby(["A","B"]).count()
# the result will print something like this, counting the repetitions of A and B
# C
# A B
# 0 0 11
# 1 10
# 2 5
# 3 12
# 4 9
# 5 12
# 6 7
# 7 8
【讨论】:
以上是关于根据某些列获取数据集中被调用次数最多的名称的主要内容,如果未能解决你的问题,请参考以下文章