[英]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.