我遇到类似的问题:
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
谢谢! :)
答案 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)