【问题标题】:Choosing particular rows from pandas dataframe从熊猫数据框中选择特定的行
【发布时间】:2013-03-26 21:52:35
【问题描述】:

我在 pandas 数据框中执行了分组,以查看每个位置和每个日期有多少行。

agg_count = df.groupby(['date', 'location']).count()

现在我想查看这个新数据帧中满足特定条件的行。比如说,count 大于 50。我如何有效地迭代这个巨大的数据框来获取这些行?

【问题讨论】:

  • 我不确定我是否正确理解了这个问题。你能发布一些示例 DataFrame 吗?如果只是为了计算行数,用size() 代替count() 不够吗?在这种情况下你可以做一些布尔索引,比如agg_count[agg_count > 50] ?

标签: python numpy pandas


【解决方案1】:

从这些数据开始

In [275]: df = pd.DataFrame({'date': [20130101, 20130101, 20130102], 'location': ['a', 'a', 'c']})

In [276]: df
Out[276]:
       date location
0  20130101        a
1  20130101        a
2  20130102        c

这会选择计数 > 1 的列

In [277]: df.groupby(['date', 'location']).apply(lambda sdf: sdf if len(sdf) > 1 else None)
Out[277]:
                         date location
date     location
20130101 a        0  20130101        a
                  1  20130101        a

在下方删除多索引

In [278]: df.groupby(['date', 'location']).apply(lambda sdf: sdf if len(sdf) > 1 else None).reset_index(drop=True)
Out[278]:
       date location
0  20130101        a
1  20130101        a

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 2018-05-20
    • 2015-12-03
    • 2021-07-17
    • 2018-03-13
    • 2015-03-29
    • 2021-07-15
    • 2018-09-19
    • 2022-07-06
    相关资源
    最近更新 更多