Python Openpyxl/Pandas-将CSV转换为XLSX

Python Openpyxl/Pandas-将CSV转换为XLSX,python,excel,pandas,csv,Python,Excel,Pandas,Csv,我正在尝试将CSV文件转换为Excel文件,但在尝试了来自web的大多数建议后,我得到的最接近的结果是使用以下代码: 输入文件看起来像 这里的问题是输出文件看起来像(请参见突出显示的部分) 另一个尝试是使用pandas data = pd.read_csv(pathcsv, sep="\t") df = pd.DataFrame(data) df.to_excel(pathxls, index=False) 但产出看起来像 有人知道如何解决这个问题吗 谢谢大家! 除了上面的评论,您是否尝试过使

我正在尝试将
CSV
文件转换为
Excel
文件,但在尝试了来自web的大多数建议后,我得到的最接近的结果是使用以下代码:

输入文件看起来像

这里的问题是输出文件看起来像(请参见突出显示的部分)

另一个尝试是使用
pandas

data = pd.read_csv(pathcsv, sep="\t")
df = pd.DataFrame(data)
df.to_excel(pathxls, index=False)
但产出看起来像

有人知道如何解决这个问题吗


谢谢大家!

除了上面的评论,您是否尝试过使用不同的编码?您可以尝试使用
encoding
参数,其中包括:

理论上只在
read\u csv()
方法中使用,但在导出时尝试不会有什么坏处

那就吃点东西吧:

df = pd.read_csv(pathcsv, sep="\t", encoding = 'ascii') # or other encodings
df.to_excel(pathxls, index=None)

我找到了这个问题的解决办法

我刚刚将编码参数添加为utf-8,效果很好

将open(路径csv,'r+',encoding=“utf-8”)作为f:


谢谢大家的帮助。这是一篇很好的第一篇文章:)

pd.read\u csv(pathcv,sep=“\t”)
已经返回了一个数据帧,不需要使用
df=pd.DataFrame(data)
。请提供一个。这是一个编码问题,在输入和输出上使用
编码
值,即:
pd.read\u csv(pathcv,encoding=“latin\u 1”)
,如果可能,请提供csv示例以便我们可以测试,因为图像没有帮助。如果它确实是一个csv文件,为什么要使用
sep=“\t”
?从上一个屏幕截图判断,您的CSV文件实际上使用逗号分隔值。@jramsey,这只是尝试和错误。每当我使用逗号时,我都会遇到这样的错误:
parserror:5行中应该有3个字段,saw 59
sep=“\t”是帮助我导出内容的唯一选项。我知道您找到了解决方案,但如果您得到这样的
parserror
,这意味着每行的字段数不一致,这对于熊猫来说是一个问题,因为数据帧是矩形数据结构,需要每一行具有相同数量的字段。设置
sep=“\t”
仅对问题进行讨论。我的猜测是,由于CSV文件没有制表符,Pandas每行只看到一个字段,每个字段都是包含几个逗号的长字符串。谢谢Alex,但我收到以下错误消息:
UnicodeDecodeError:“ascii”编解码器无法解码第29位的字节0xe2:序号不在范围内(128)
df = pd.read_csv(pathcsv, sep="\t", encoding = 'ascii') # or other encodings
df.to_excel(pathxls, index=None)