替换python pandas数据帧中的部分字符串

时间:2013-01-15 19:54:38

标签: python csv pandas

我遇到类似的问题:

Pandas DataFrame: remove unwanted parts from strings in a column

我需要从DataFrame中的字符串中删除换行符。基本上,我使用python的json模块访问了一个api,这一切都没问题。创建DataFrame也非常有效。但是,当我想最终将最终结果输出到csv时,我有点卡住,因为有新行在csv文件中创建了错误的“新行”。

所以基本上我试图改变这个:

'......这是一个段落。

这是另一段...'

进入这个:

'......这是一个段落。这是另一段......'

我不关心为段落中保留任何'\ n'或任何特殊符号。所以它可以被剥离。

我尝试了一些变化:

misc['product_desc'] = misc['product_desc'].strip('\n')

AttributeError: 'Series' object has no attribute 'strip'

这是另一个

misc['product_desc'] = misc['product_desc'].str.strip('\n')

TypeError: wrapper() takes exactly 1 argument (2 given)

misc['product_desc'] = misc['product_desc'].map(lambda x: x.strip('\n'))
misc['product_desc'] = misc['product_desc'].map(lambda x: x.strip('\n\t'))

没有错误消息,但换行符也不会消失。同样的事情:

misc = misc.replace('\n', '')

写入csv行是这样的:

misc_id.to_csv('C:\Users\jlalonde\Desktop\misc_w_id.csv', sep=' ', na_rep='', index=False, encoding='utf-8')

Pandas的版本是0.9.1

谢谢! :)

2 个答案:

答案 0 :(得分:46)

strip仅删除字符串开头和结尾的指定字符。如果您要删除所有 \n,则需要使用replace

misc['product_desc'] = misc['product_desc'].str.replace('\n', '')

答案 1 :(得分:6)

您可以使用regex方法的replace参数来实现:

misc['product_desc'] = misc['product_desc'].replace(to_replace='\n', value='', regex=True)