Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dataframe和.csv上的行终止符出现问题\n_Python_Pandas_Dataframe_Bytesio - Fatal编程技术网

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

Python dataframe和.csv上的行终止符出现问题\n,python,pandas,dataframe,bytesio,Python,Pandas,Dataframe,Bytesio,我用一个python API从gmail中收到的电子邮件附件中获取了一个.csv文件,将其转换成一个数据框来制作一些数据准备,并在我的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 = Fal

我用一个python API从gmail中收到的电子邮件附件中获取了一个.csv文件,将其转换成一个数据框来制作一些数据准备,并在我的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')

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

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

您只需在数据帧上应用替换“\n”即可消除它:

df = df.replace('\n', '')
有关函数的更多细节,请考虑检查这个特定的


希望它能起作用。

通常,这个\n似乎表示句子将进入下一行,即“return”键,换行符

您只需在数据帧上应用替换“\n”即可消除它:

df = df.replace('\n', '')
有关函数的更多细节,请考虑检查这个特定的


希望它能起作用。

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

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)


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

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)


如果有效负载是csv,您应该能够使用pd.read_csvr捕获df并使用其本机换行解析!你试过了吗?谢谢你的回答,我把你的答案和雷纳托·阿兰哈的答案混合在一起,结果成功了!如果有效负载是csv,您应该能够使用pd.read_csvr捕获df并使用其本机换行解析!你试过了吗?谢谢你的回答,我把你的答案和雷纳托·阿兰哈的答案混合在一起,结果成功了!