将Pandas导出为CSV在CSV中产生#NAME错误

3

我有一个类似这样的 DF:

    Words
    +Beverly +Hills
    +Andrea +Johnson
    +Football

将此数据框导出为CSV文件,使用以下代码:
  df.to_csv('df.csv', index=False)

然而,由于每个单词前都有一个“+”,Excel将读取这些单元格作为方程式,导致“#NAME”错误。我知道我可以在字符串之前强制添加“'”以使Excel将其读取为纯文本,但这会产生一个不必要的先导“'”。有没有建议可以解决导出时的此错误?

2
你可以尝试这样做:df.to_excel('df.xlsx', index=False),不知道可行吗? - mechanical_meat
“csv” 本身并不差,只是 Excel 对它的读取有问题。您可以在文本编辑器或其他软件中打开该文件。我相信您也可以将 csv 导入 Excel 中,而不仅仅是双击文件打开它。 - Woody Pride
嘿@Bernie,我尝试了一下 - 我一直收到这个错误ValueError:当前不支持已安装的openpyxl。请使用>=1.6.1和<2.0.0版本。如果我能够解决这个问题,转换会有什么作用? - user3682157
加号符号是必要的吗?为什么不直接将它们剥离掉呢?毕竟只有在读取输出的软件中才会出现错误,而在导出时并没有错误。 - Woody Pride
1个回答

1
数据帧可以使用to_excel和xlsxwriter引擎无问题地写入xlsx文件。也许这已经足够好了。但是,将xlsx文件转换为Excel格式后,您遇到的相同问题会发生。

以下是创建xlsx文件的示例:

import pandas as pd
from pandas import DataFrame
data = {'Words': ['+Beverly +Hills', '+Andrea +Johnson', '+Football']}
df = DataFrame(data)
df
Out[2]: 
              Words
0   +Beverly +Hills
1  +Andrea +Johnson
2         +Football

writer = pd.ExcelWriter('df.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()

# contents of df.xlsx are now
#     Words
# 0  +Beverly +Hills
# 1  +Andrea +Johnson
# 2  +Football

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接