当前位置: 首页 > 知识库问答 >
问题:

如何根据数值筛选熊猫数据帧?

易俊远
2023-03-14

我在Python中使用一个视频游戏的熊猫DataFrame,每个游戏都有一种类型。我正在尝试删除任何在DataFrame中出现次数少于一定次数的类型的视频游戏,但我不知道该怎么做。我确实发现了一个StackOverflow问题,这个问题似乎是相关的,但我根本无法破译这个解决方案(可能是因为我从未听说过R,而且我对函数编程的记忆充其量也很生疏)。

帮助?

共有3个答案

司马越
2023-03-14

@jezael解决方案非常有效,以下是一种基于值计数的不同过滤方法:

例如,如果数据集是:

df = pd.DataFrame({'a': [1,2,3,3,1,6], 'b': [11,2,33,4,55,6]})

将计数转换并保存为字典

ount_freq = dict(df['a'].value_counts())

创建新列并复制目标列,使用新创建的列映射字典

df['count_freq'] = df['a']
df['count_freq'] = df['count_freq'].map(count_freq)

现在,我们有了一个包含count freq的新列,您现在可以定义一个阈值,并使用该列轻松进行过滤。

df[df.count_freq>1]
景令秋
2023-03-14

性能更好的解决方案应该是<code>GroupBy。使用size将forcountper groups转换为与原始df大小相同的Series,因此可以使用布尔索引进行筛选:

df1 = df[df.groupby("A")['A'].transform('size') > 1]

或者使用Series.mapSeries.value_counts

df1 = df[df['A'].map(df['A'].value_counts()) > 1]

包嘉懿
2023-03-14

使用分组依据筛选器:

In [11]: df = pd.DataFrame([[1, 2], [1, 4], [5, 6]], columns=['A', 'B'])

In [12]: df
Out[12]:
   A  B
0  1  2
1  1  4
2  5  6

In [13]: df.groupby("A").filter(lambda x: len(x) > 1)
Out[13]:
   A  B
0  1  2
1  1  4

我建议阅读文档中的拆分联合收割机部分。

 类似资料:
  • 我想过滤熊猫DataFrame,它从DataFrame中过滤掉除值中声明的行之外的所有其他列。我如何才能做到这一点并获得预期输出。 预期输出:

  • 我有一个熊猫表,格式如下[df],由“noc”和“year”索引。我如何访问“noc,年份组合”并将“total_Medales”条目保存到列表中? 例如:我想在1992年(即21.5)中搜索ARG的“total_medals”,并将其保存到新列表中。

  • 我有点被困在提取一个变量的值和另一个变量的条件上。例如,以下数据帧: 当时,如何获取的值?每次提取的值时,都会得到一个对象,而不是字符串。

  • 我正在编写一个android聊天应用程序,并试图使用自定义FirebaceRecyclerAdapter在RecyRCleView中使用Firebase数据库实现无休止的滚动。对于第一个消息加载,我使用对数据排序的查询从Firebase数据库获取数据。orderByChild()和。limitToFirst(specificCount)到目前为止还不错。但当用户滚动到最后一个可见项时,我必须获取消

  • 如果我有一个包含以下列的数据帧: 我想能够说:这里是一个数据框,给我一个列的列表,它是类型Object还是类型DateTime? 我有一个将数字(Float64)转换为两位小数的函数,我想使用这个特定类型的dataframe列列表,并通过这个函数将它们全部转换为2dp。 也许 吧:

  • 问题内容: 我有点被困在提取另一个变量的条件变量的值上。例如,以下数据框: 如何获得when的价值?每当我提取的值时,我都会得到一个对象,而不是字符串。 问题答案: 您可以用来获取满足条件的序列,然后获取第一个元素: