【发布时间】:2020-06-24 20:20:18
【问题描述】:
在处理 pandas 0.14.0 中 DataFrame 的 to_csv() 函数时,我遇到了一个令人作呕的问题。我在 DataFrame df 中有一个长 numpy 数组列表作为一列:
>>> df['col'][0]
array([ 0, 1, 2, ..., 9993, 9994, 9995])
>>> len(df['col'][0])
46889
>>> type(df['col'][0][0])
<class 'numpy.int64'>
如果我将 df 保存为
df.to_csv('df.csv')
在 LibreOffice 中打开 df.csv,对应的列显示如下:
[ 0, 1, 2, ..., 9993, 9994, 9995]
而不是列出所有 46889 个数字。我想知道是否有一种方法可以强制 to_csv 列出所有数字而不是显示省略号?
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1
Data columns (total 4 columns):
pair 2 non-null object
ARXscore 2 non-null float64
bselect 2 non-null bool
col 2 non-null object
dtypes: bool(1), float64(1), object(2)
【问题讨论】:
-
df.info()的输出是什么样的?像这样在数组条目中带有间距的粘贴输出看起来很奇怪。 -
在此处添加评论格式不正确,因此我修改了问题以包含 df.info()
-
这是一种奇怪的数据存储方式,为什么将numpy数组用作对象?
-
您将数组存储为字符串,因此您看到的输出是预期的。如果要输出一个数组,则需要获取该实际数组而不是截断的字符串。