首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为在熊猫DataFrame中找到的所有唯一值设置相同的频率?

如何为在熊猫DataFrame中找到的所有唯一值设置相同的频率?
EN

Stack Overflow用户
提问于 2019-10-15 03:13:01
回答 1查看 57关注 0票数 1

我有一个熊猫DataFrame,它有两列:一列用于类别(PROBLEM_TYPE),另一列用于类别描述。显然,描述的值计数对于每个类别是不同的,但是由于我计划基于这个DataFrame训练一个模型,所以我尝试为每个类别设置相同的值计数。这样我的模型会更准确。

DataFrame:

代码语言:javascript
复制
filtered_df.head()

    PROBLEM_TYPE    DESCRIPTION
0   problem_type1   blabla...
1   problem_type1   blablablabla...
2   problem_type3   bla...
3   problem_type7   blablabloblo...
4   problem_type2   blobloble...

这是我调用value_counts()函数时得到的结果:

代码语言:javascript
复制
filtered_df["PROBLEM_TYPE"].value_counts()

problem_type1            141887
problem_type2             21663
problem_type3             19349
problem_type4             15710
problem_type5              5229
problem_type6              5161
problem_type7              4682
problem_type8              3672
problem_type9              3296
problem_type10             3131
Name: PROBLEM_TYPE, dtype: int64

正如您所看到的,有10种不同的问题类型(类别),每种类型都有不同的值计数。我的问题是如何为所有问题类型设置相同的值计数。例如,每个问题类型在DataFrame中的值计数都是最小的(即3131)。

换句话说,如何将每个类别的频率设置为相同,以便下次运行value_counts()函数时,它将如下所示:

代码语言:javascript
复制
filtered_df["PROBLEM_TYPE"].value_counts()

problem_type1              3131
problem_type2              3131
problem_type3              3131
problem_type4              3131
problem_type5              3131
problem_type6              3131
problem_type7              3131
problem_type8              3131
problem_type9              3131
problem_type10             3131
Name: PROBLEM_TYPE, dtype: int64

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-15 03:20:53

您可以执行以下操作:

代码语言:javascript
复制
mi = df["PROBLEM_TYPE"].value_counts().min()
df_filtered = df.sample(frac=1).groupby("PROBLEM_TYPE").head(mi)

在此解决方案中有两个步骤,找到计数最少的"PROBLEM_TYPE"

代码语言:javascript
复制
mi = df["PROBLEM_TYPE"].value_counts().min()

然后打乱你的数据帧行,取每组的第一个mi:

代码语言:javascript
复制
df_filtered = df.sample(frac=1).groupby("PROBLEM_TYPE").head(mi)

有关如何混洗数据帧的讨论,请参阅here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58382798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档