带正则表达式的 Pandas df.loc

女妖

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

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

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

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

not_speshal

使用filter得到匹配您的正则表达式的列

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

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

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

然而,这假设没有其他列可以匹配正则表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章