【问题标题】:Filtering based on catagories (string) empty data frame - pandas基于类别(字符串)空数据框的过滤 - 熊猫
【发布时间】:2021-11-11 09:40:57
【问题描述】:

我有这样的数据框;

    bins      A        C    D
1.0 -  2.0    1.32    0.5   7
4.0 -  5.0    4.044   0.5   20
5.0 -  6.0    5.86    0.5   29
5.0 -  6.0    8.06    0.5   30
6.0 -  7.0    6.76    0.5   34
8.0 -  9.0    11.96   0.5   44
11.0 -  12.0  12.00   0.2   24
11.0 -  12.0  12.00   0.2   24

我想删除 bin 低于 11.0 - 12.0 的所有行

我试过了

df_.loc[df['bins'] > '11.0 - 12.0']
  
df.query(bins > '11.0 - 12.0')

但这些都不起作用,因为没有得到任何价值

任何帮助将不胜感激!

提前致谢

【问题讨论】:

  • 它在解决方案上不起作用,因为您在字符串数据类型中使用大于。
  • 连字符后面是一个空格还是两个空格?您的示例数据有 2 个,而您的代码有 1 个。

标签: python pandas filtering data-wrangling


【解决方案1】:

不妨试试:

>>> x = df['bins'].str.split('\s+-\s+', expand=True).astype(float)
>>> df[x[0].ge(11) & x[1].ge(12)]
          bins     A    C   D
6  11.0 - 12.0  12.0  0.2  24
7  11.0 - 12.0  12.0  0.2  24
>>> 

【讨论】:

    【解决方案2】:

    您可以尝试在该值中定位bins 的第一行索引,然后从该索引开始定位.loc

    df.loc[df.index[df['bins'] == '11.0 - 12.0'][0]: ]
    

    结果:

              bins     A    C   D
    6  11.0 - 12.0  12.0  0.2  24
    7  11.0 - 12.0  12.0  0.2  24
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2015-09-24
      • 2018-10-04
      • 2019-03-04
      • 2022-07-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多