在两列之间创建具有布尔条件的表

时间:2019-11-27 20:41:09

标签: python pandas jupyter

我目前正在查看Reddit数据集,该数据集的两个列均包含注释和subreddit类型。我的目标是,由于行太多,因此希望将数据集限制为较小的数据。

通过查看df ['subreddit']。value_counts> 10000,我正在寻找包含超过10000条注释的subreddit。如何创建满足此条件的新数据框?我会使用loc还是建立某种if语句?

enter image description here

1 个答案:

答案 0 :(得分:1)

首先,您要执行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条注释的所有子reddit的列表,上面提供了这些注释,然后仅使用这些值过滤原始数据帧:

df = df[df['subreddit'].isin(list(filtered_df['subreddit']))]