You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确读取包含Int64数组的DataFrame的CSV文件?

Int64类型数组的CSV读写问题解决

执行以下代码后,读取生成的CSV文件时,unique列数据会出现异常,如何正确读取该列数据?

import pandas as pd

df = pd.DataFrame(data={'key': [1,1,2,2], 'val': [3,4,5,5]})
df['val'] = df['val'].astype('Int64') # 默认情况下read_csv无法正确读取Int64数组
df = df.groupby('key')['val'].agg(['unique'])
display(df)
df.to_csv('test')
df = pd.read_csv('test', index_col=0)
display(df)

感谢@hide1nbush的提示,已通过自定义转换器解决该问题,代码如下:

import ast
import pandas as pd

def convert_int64_array(array_string):
    return pd.array(ast.literal_eval(array_string.split("\n")[1]), dtype=pd.Int64Dtype())
df = pd.read_csv('test', index_col=0, converters={'unique': convert_int64_array})

更简便的方式是使用pickle格式存储DataFrame,这种格式在往返存储时无需担心索引、Int64类型等兼容性问题,能完整保留数据的结构和类型。

内容的提问来源于stack exchange,提问作者lzl124631x

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:32:04