dataframe和.csv上的行终止符出现问题\n

2024-05-29 10:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我从gmail中收到的电子邮件附件中获得了一个.csv文件(使用python API),将其转换为数据帧以制作一些数据准备,并在我的pc上保存为.csv。它工作得很好,问题是我在某些列上得到了“\n”(它来自源附件)

我用来获取数据并转换为dataframe和.csv的代码

r = io.BytesIO(part.get_payload(decode = True))
df = pd.DataFrame(r)
df.to_csv('C:/Users/x.csv', index = False)

我得到的df示例:

+-------------+----------+---------+----------------------+
| Information | Modified | Created | MD_x0020_Agenda\r\n' |
+-------------+----------+---------+----------------------+
| c           | d        | f       | \r\n'                |
| b\n'        |          |         |                      |
| c           | e        | \r\n'   |                      |
+-------------+----------+---------+----------------------+

正确答案的示例:

+-------------+----------+---------+----------------------+
| Information | Modified | Created | MD_x0020_Agenda\r\n' |
+-------------+----------+---------+----------------------+
| c           | d        | f       | \r\n'                |
| b           | c        | e       | \r\n'                |
+-------------+----------+---------+----------------------+

我试着用线路终结者。在我看来,如果我强制它只获取\r\n而不获取\r\n,它就会工作。事实并非如此

df.to_csv('C:/Users/x.csv', index = False, line_terminator='\r\n')

谁能帮我一下吗?这真的把我吓坏了,因为我不能推进我的项目。谢谢


Tags: csvto数据false示例df附件index
2条回答

我混合了这两个答案,得到了答案,谢谢

PS:通过一些研究,我发现这是一个windows/excel问题,当您导出.csv时,它会将\n和\r\n(\r太?)视为新行。DataFrame仅将\r\n视为新行(默认情况下)

df = pd.read_csv(io.BytesIO(part.get_payload(decode = True)), header=None)  

#grab the first row for the header
new_header = df.iloc[0] 
#take the data less the header row
df = df[1:] 
#set the header row as the df header
df.columns = new_header 
#replace the \n wich is creating new lines
df['Information'] = df['Information'].replace(regex = '\n', value = '')
df.to_csv('C:/Users/x.csv', index = False', index = False)

通常情况下,此“\n”表示句子将进入下一行,即“回车”键,换行符

您只需在数据帧上应用replace('\n','')即可消除它:

df = df.replace('\n', '')
<>关于函数的更多细节,考虑检查这个特定的{a1}

希望它能起作用

相关问题 更多 >

    热门问题