gpt4 book ai didi

python - 当使用 utf-8 编码保存为 csv 时,pandas 仅保存列表的前 100 个条目

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:54 31 4
gpt4 key购买 nike

我的目标是将 pandas 数据框保存为具有 utf-8 编码的 csv 文件。这些值有时是长列表(长 > 100 个条目)。我注意到这些列表的输出限制为 100 个条目,然后是 ...。只有在 .to_csv() 中设置 encoding='utf-8' 时才会出现此问题:

>>> import pandas as pd
>>>
>>> d = {"row": {'column': range(1, 150)}}
>>> df_out = pd.DataFrame(d)
>>> df_out.to_csv("wo_encoding.csv")
>>> df_out.to_csv("w_encoding.csv", encoding='utf-8')
>>>
>>> df_in1 = pd.read_csv("wo_encoding.csv")
>>> len(eval(df_in1.iat[0,1])) # eval() to create list from string
149
>>> df_in2 = pd.read_csv("w_encoding.csv")
>>> print(df_in2.iat[0,1][-13:]) # last 13 characters
99, 100, ...]

这是为什么?你会认为这是错误吗?我该如何解决(同时仍设置编码)?

最佳答案

你是对的,似乎 Pandas 在不同的编码中以不同的方式对待列表。在 UTF-8 中,列表在项目 #100 处被截断。

要解决此问题,您可以简单地将列表列手动映射到字符串,然后再导出为 CSV。在您的示例中,这意味着:

df_out['row'] = map(unicode, df_out['row'])

我映射到 unicode 函数而不是 str,因为我假设您正在使用 Unicode 数据,但后者在您给出的示例中同样有效。

关于python - 当使用 utf-8 编码保存为 csv 时,pandas 仅保存列表的前 100 个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37159153/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com