用正则表达式替换Pandas数据帧不起作用

时间:2017-09-14 02:38:44

标签: python regex pandas dataframe

我的数据框有很多行。我想使用pd.replace替换整列中的值。

import pandas as pd
import re
list = ['MD 15241', 'MD', 'TD', 'TD 15487']
a = pd.DataFrame(list)
b = a.copy()

b.replace(r'[A-Z]{2}', 'USA', inplace = True)
b

输出

    0
0   MD 15241
1   MD
2   TD
3   TD 15487

我试过r'MD'或'r'TD',它有效。

2 个答案:

答案 0 :(得分:1)

regex=True方法中需要replace

b.replace(r'[A-Z]{2}', 'USA', inplace=True, regex=True)

b
#0
#0  USA 15241
#1  USA
#2  USA
#3  USA 15487

答案 1 :(得分:0)

def replace_string_inside_df(df):
    df.replace(r'[^a-zA-Z0-9]', ' ', inplace=True, regex=True)
    return df

print(replace_string_inside_df(df))