将数组作为单个元素放入数据帧

2024-04-19 04:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

伙计们

我有这样一句话:

dic = {}

dic['A'] = 1
dic['B'] = np.array([1,2,3])
dic['C'] = np.array([1,2,3,4])
dic['D'] = np.array([6,7])

然后我试着把它们放到一个DataFrame中(以后也可能插入更多的行,但是每个元素的数组长度可能是可变的),出于某些原因,我希望将它们作为一个完整的对象保存在每个列中,当打印时,它看起来像:

^{pr2}$

当我试图通过以下方式做到这一点时:

pd.DataFrame.from_dict(dic)

我总是得到错误:ValueError:数组的长度必须相同

我是否必须将整个数组保持为单个元素,但是,有时我也有一些单一的值?在


Tags: 对象from元素dataframe错误np方式原因
3条回答

如果要保持此形状,请按将数组转换为字符串。在

我不知道你为什么要输入词典。但如果您将元素作为numpy数组传递,它将用NaN转换缺少的值。在

pd.DataFrame([np.array([1,2,3]),np.array([1,2,3,4]),np.array([6,7])],columns=['A','B','C','D'])

在输出:-在

^{pr2}$

IIUC这应该行得通

import pandas as pd
import numpy as np
df = pd.DataFrame({"A":[1, np.array([2,3])],
                   "B":[np.array([1,2,3]), np.array([7,8])],
                   "C":[np.array([1,2,3,4]), np.array([5,6,7,2])],
                   "D":[np.array([6,7]), 4]})

所以df.to_dict()返回

^{pr2}$

更新 如果您想保存到文件,您应该考虑使用列表而不是numpy数组,并使用delimiter=';'

相关问题 更多 >