Python Pandas replace()不起作用

时间:2016-03-03 19:01:06

标签: pandas

我有一些字段在上游进程中有一些垃圾。我正在尝试从将垃圾附加到电子邮件地址的列中删除'\ r \ n名称:hwowneremail,dtype:object'

report_df['Owner'].replace('\r\nName: hwowneremail, dtype: object',inplace=True)
report_df['Owner'][26]

输出:

'   Jane.Doe@company.com\r\nName: hwowneremail, dtype: object'

我也尝试了以下不成功的变种:

replace('Name: hwowneremail, dtype: object', inplace=True)

replace('\\r\\nName: hwowneremail, dtype: object', inplace=True

replace(r'\r\nName: hwowneremail, dtype: object', inplace=True)

replace('\r\nName: hwowneremail, dtype: object', "", inplace=True)

replace(to_value='\r\nName: hwowneremail, dtype: object', value=' ',inplace=True)

replace('\\r\\nName: hwowneremail, dtype: object',regex=True,inplace=True)

提前感谢您的见解!

3 个答案:

答案 0 :(得分:3)

据我记忆,Python Pandas在更换时有所改变。您应该尝试传递一个正则表达式关键字参数。

像这样;

report_df['Owner'].replace({'\r\nName: hwowneremail, dtype: object':''},regex=True)

答案 1 :(得分:0)

或者您可以使用:

report_df.Owner.str.replace(r'\r\n.*', '')

答案 2 :(得分:0)

或者有时只是确保要查找的字符/ str之前或之后没有空格(例如?):

df.replace(r'\s*\?\s*', np.nan, regex=True) 

或只是确保您指定要查找的字符串:

df.replace(r'\?', np.nan, regex=True)

这两种情况:并且不要忘记

regex=True