繁体   English   中英

Pandas df.loc 与正则表达式

[英]Pandas df.loc with regex

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

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

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

where daily_data is the dataframe containing the csv data, location is the name of the state I'm looking for, and arealabel is a variable storing either 'Province/State' or 'Province_State ' depending on the result of a date check. 我想通过例如调节像Province(/|_)State这样的正则表达式来消除日期检查,但是我很难找到一种通过正则表达式索引到 pandas dataframe 的方法。 这是可行的(并且以某种方式使代码更优雅而不是更优雅)? 如果是这样,如果有人能指出我正确的方向,我将不胜感激。

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

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

然后将其用于 select 仅与您的位置匹配的行:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM