在Pandas DataFrame中更改值(字符串操作)

时间:2017-03-03 19:16:45

标签: pandas dataframe

我正在向Pandas DataFrame读取CSV文件,但在使用之前需要进行清理。我需要做两件事:

  1. 使用正则表达式过滤值

  2. 应用字符串函数,例如trim,left,right,......

  3. 例如,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),并将单元格的值替换为单元格的两个最后一个字符(例如,使用右侧)字符串函数)

1 个答案:

答案 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