我目前正在查看 Reddit 数据集,其中两列包含评论和 subreddit 类型。我的目标是,由于行太多,希望将数据集限制为较小的值。
通过查看 df['subreddit'].value_counts > 10000,我正在寻找具有超过 10000 条评论的 subreddits。如何创建满足此条件的新数据框?我会使用 loc 或设置某种 if 语句吗?
最佳答案
首先,您将执行df['subreddit'].value_counts()
。这会返回一个系列,您可能想要做的是将其转换为数据帧以便稍后执行一些过滤。
我会做的是;
aux_df = df['subreddit'].value_counts().reset_index()
filtered_df = aux_df[aux_df['subreddit'] > 10000].rename(columns={'index':'subreddit','subreddit':'amount'})
可选地使用loc
:
filtered_df = aux_df.loc[aux_df['subreddit'].gt(10000)].rename(columns={'index':'subreddit','subreddit':'amount'})
编辑
根据评论,我将首先创建上面提供的包含超过 10000 条评论的所有 subreddits 的列表,然后简单地使用这些值过滤原始数据框:
df = df[df['subreddit'].isin(list(filtered_df['subreddit']))]
关于python - 创建一个在两列之间具有 bool 条件的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078124/