Python dataframe和.csv上的行终止符出现问题\n
我用一个python API从gmail中收到的电子邮件附件中获取了一个.csv文件,将其转换成一个数据框来制作一些数据准备,并在我的pc上保存为.csv。它工作得很好,问题是我在一些专栏上得到了“\n”这就像源附件中的那样 我用来获取数据并转换为dataframe和.csv的代码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
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并使用其本机换行解析!你试过了吗?谢谢你的回答,我把你的答案和雷纳托·阿兰哈的答案混合在一起,结果成功了!