【问题标题】:Pandas df.loc with regex带有正则表达式的熊猫 df.loc
【发布时间】:2021-08-22 20:14:19
【问题描述】:

我正在处理由几个几乎相同格式的 csv 文件组成的数据集。每个 csv 描述一个特定的日期,并按州/省标记数据。但是,数据集中一个列标题的格式从Province/State 更改为Province_State,因此在某个日期之前创建的所有 csv 都使用第一种格式,而在该日期之后创建的所有 csv 都使用第二种格式。

我正在尝试总结与特定状态相对应的所有条目。目前我正在使用的代码如下:

daily_data.loc[daily_data[areaLabel] == location].sum()

daily_data 是包含 csv 数据的数据框,location 是我要查找的状态的名称,arealabel 是一个变量,存储 'Province/State''Province_State' 取决于日期检查的结果。我想通过例如消除日期检查以Province(/|_)State 之类的正则表达式为条件,但我很难找到一种通过正则表达式索引到熊猫数据帧的方法。这是可行的(并且以某种方式使代码更优雅而不是更不优雅)?如果是这样,如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

    标签: python regex pandas dataframe


    【解决方案1】:

    使用filter 获取与您的正则表达式匹配的列

    >>> df.filter(regex="Province(/|_)State").columns[0]
    'Province/State'
    

    然后使用它来仅选择与您的位置匹配的行:

    df[df[df.filter(regex="Province(/|_)State").columns[0]]==location].sum()
    

    然而,这假定没有其他列与正则表达式匹配。

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 2015-11-18
      • 2018-04-30
      • 2019-05-26
      • 2017-06-18
      • 2021-07-20
      • 1970-01-01
      • 2019-08-10
      相关资源
      最近更新 更多