【问题标题】:Removing rows from a dataframe, if the observation for a specific variable is numeric如果特定变量的观察值是数字,则从数据框中删除行
【发布时间】:2020-03-07 04:09:34
【问题描述】:

data example 我有一个包含超过 20000 个观测值的大型数据框,我有一个名为“站”的变量,我需要删除所有只有数字作为 s 站名称的行。 到目前为止唯一有效的代码是: df['station'][~df['station'].str.isnumeric()

但是这只会创建一个带有一个变量的数据框

【问题讨论】:

  • 请添加您的数据框示例值和预期结果。为什么 numpy 是标签而不是 Pandas?
  • 我已经添加了数据框示例值

标签: python python-3.x pandas python-2.7 numpy


【解决方案1】:

你可以这样做,

df_filtered = df[df['station'].str.isnumeric()==False]

如果您使用它,您就不必对数据框进行设置操作。 内部语句最终是应用于数据帧的布尔逻辑过滤器。

【讨论】:

    【解决方案2】:

    您可以使用带有 .str.isnumeric() 的 extre 列,稍后用作过滤器:

    df['filter'] = df['station'].str.isnumeric()
    df_filtered = df[df['filter'] != False]#.drop(columns=['filter'] 
    

    这应该返回不仅是列station 的数字的所有行。之后,如果您希望删除 filter 列以保持原始结构,则可以删除哈希。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 2021-12-03
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 2018-01-07
      • 1970-01-01
      • 2015-04-14
      相关资源
      最近更新 更多