【问题标题】:Using a variable to query or filter on a dataset in python在python中使用变量查询或过滤数据集
【发布时间】:2020-09-25 22:56:52
【问题描述】:

我在一个项目中使用 pandas,该项目使用的数据集有 21 列和近 11,000 行。

我使用以下代码创建了一个名为 name_ten_plus 的新变量,它显示过滤后的列 name 的计数大于或等于 10:

name_ten_plus = df_name_data['name'].value_counts()[df_name_data['name'].value_counts() >= 10]

使用print(name_ten_plus),它显示有120 个name 值至少出现十次。 print 函数产生(例如):

Mike M     22
John J     22
Mark K     21
etc...(stacked under each other)

我一直在试图找出一种方法来创建一个子集 仅包含 name_ten_plus 中名称的行的原始数据集。

我研究了如何以几种不同的方式执行此任务,从使用查询到 lambda 函数,我也尝试了 groupby。

我找不到与我的确切情况相关的示例。

任何帮助将不胜感激。在此期间,我会继续努力。

注意:我是编程新手,因此对于任何措辞错误的语言,我深表歉意。这是我在这个社区的第一篇文章,但感谢所有以前的发帖人和响应者在这些论坛中提供的帮助和见解。

迈克·M

【问题讨论】:

    标签: python dataframe filter pandas-groupby subset


    【解决方案1】:

    您可以从 name_ten_plus 系列中获取索引,将其设为一组并使用 .isin() 过滤您的原始数据框。

    name_filter_set = set(name_ten_plus.index)
    
    filtered_df = df_name_data[df_name_data['name'].isin(name_filter_set)]
    

    【讨论】:

    • 非常感谢,康茨。这行得通!对此,我真的非常感激。 :)
    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 2021-12-19
    • 2022-01-22
    • 2016-04-03
    • 2015-08-25
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多