【问题标题】:Some ide on how to filter a pandas dataframe关于如何过滤熊猫数据框的一些想法
【发布时间】:2023-01-12 18:45:36
【问题描述】:

我想过滤熊猫数据框。显然我可以用几个循环来做到这一点,但对于大量数据来说效率不高,所以我想问一些关于如何做的想法。

我有组织的数据,例如,

c1=t c2=detector(1,2,or3)  c3
1     1
1     2
2     1
2     2
2     3
3     2
3     3
4     1
4     3
...

可以看作是模拟的次数,c1=tc2是模拟的检测器类型。有时您不会随机获得其中一个检测器的数据,因此我想将每个数据帧中的数据划分为相同的检测器时间。

第一列是索引递增列,第二列只能有3个值(1,2,3),我想把这个dataframe分成3个,

  • 一个包含相同c1的所有行,其中您有 1 个和 2 个值
  • 一个包含相同c1的所有行,其中您有 1 个和 3 个值
  • 一个包含相同c1的所有行,其中您有 2 个和 3 个值
  • 最后一个包含所有三个值 1,2,3

没有唯一的 c1 行。

我想知道过滤此数据框的 pythonic 方式将如何。

【问题讨论】:

    标签: python pandas database dataframe


    【解决方案1】:

    利用:

    s = df.groupby('c1')['c2'].agg(set)
    print (s)
    c1
    1       {1, 2}
    2    {1, 2, 3}
    3       {2, 3}
    4       {1, 3}
    Name: c2, dtype: object
    
    
    df1 = df[df['c1'].isin(s.index[s.eq(set([1,2]))])]
    print (df1)
       c1  c2
    0   1   1
    1   1   2
    

    【讨论】:

      猜你喜欢
      • 2021-05-31
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2014-12-27
      • 2018-07-13
      • 2019-04-13
      相关资源
      最近更新 更多