我正在向Pandas DataFrame读取CSV文件,但在使用之前需要进行清理。我需要做两件事:
使用正则表达式过滤值
应用字符串函数,例如trim,left,right,......
例如,DataFrame可能如下所示:
0 city_some_string_45
1 city_Other_string_56
2 city_another_string_77
因此我需要对其值以“city”开头的所有行进行过滤(使用正则表达式)并获取最后两个字符。
最终结果如下:
0 45
1 56
2 77
换句话说,我想应用的逻辑是:读取单元格的值,如果以city开头(使用正则表达式进行过滤,即:^ city),并将单元格的值替换为单元格的两个最后一个字符(例如,使用右侧)字符串函数)
答案 0 :(得分:1)
对于这样的数据框:
No city
0 0 city_some_string_45
1 1 city_Other_string_56
2 2 city_another_string_77
过滤数据框,以使城市列的行以城市
开头df = df [df.city.str.startswith('city')]
您可以使用str.extract仅提取数字
df['city'] = df.city.str.extract('(\d+)').astype(int)
得到的df
No city
0 0 45
1 1 56
2 2 77