如果 pandas 包含超过 32,767 个字符,熊猫.to_csv正确导出单元格(不会丢失数据)吗?



在我说什么之前,请注意,我必须使用 xlsx 或 csv,因为它用于网站导入,并且单元格中的信息不能以任何方式截断、删除或缩短。请不要提供答案,说使用其他东西,因为我不能。

我正在将数据导出到电子表格,该电子表格可以是csv或xlsx,具体取决于我找到的答案,并且超过10000行包含一个超过32,767个字符的单元格。(因此,总字符数为 32767+ * 10000(。例如:(89473 个字符 * 10000(

我不确定信息在完成导出后是否会保留,因为在 Excel 中,它要么为 xlsx 或 csv 导出以 32,767 个字符剪切(删除(单元格中的数据,它将信息放入下一行并使其看起来已损坏(即使它可能不是(。

我的主要问题是:从熊猫导出后是否保留了信息,只是没有在 excel 中显示信息,而是原始文件包含该信息?还是无论如何出口后一切都会被切断?

另外,有没有办法使用不同的程序查看单元格中的全部字符,因为很明显,Excel会将其切断或使其看起来失真。

我尝试在网上寻找解决方案,但没有运气。我能够使用这些其他格式(除了csv和xlsx(导入网站:XLS,XML或ZIP文件。

df.to_excel('File.xlsx') ##Using this to export the file.

编辑:谷歌上的10秒告诉我Excel的每个单元格有32767个字符的硬限制。所以这是excel的问题。

哎呀,让我们做一个测试数据帧:

import pandas as pd
bigstring = "".join(["ABCDEFGHIJKLMNOPQRSTUVWXYZ"] * 10000)
df = pd.DataFrame([bigstring, bigstring[:-1], bigstring[:-2]])

到目前为止看起来不错

>>> list(map(len, df[0]))
[260000, 259999, 259998]
df.to_csv("test.csv")

现在让我们看看它是否有效:

wc -l test.csv 
4 test.csv

4行,没错。

awk '{ print length }' test.csv 
2
260002
260001
260000

每行的长度也都很好。

cat test.csv | grep -o '...$'
XYZ
WXY
VWX

是的,看起来不错。所以我无法复制你的问题。

最新更新