python - 如何从 Pandas 数据框中获取二维 numpy 数组? - 错误的形状

标签 python numpy pandas

我想从 pandas 数据帧 df 的列中获取一个 2d-numpy 数组,每一行都有一个 numpy 向量。但如果我这样做

df.values.shape

我得到:(3,) 而不是得到:(3,5)

(假设数据框中的每个 numpy 向量有 5 个维度,并且数据框有 3 行)

什么是正确的方法?

最佳答案

理想情况下,首先通过寻找不同的方式来定义 DataFrame 来避免陷入这种情况。但是,如果您的 DataFrame 如下所示:

s = pd.Series([np.random.randint(20, size=(5,)) for i in range(3)])
df = pd.DataFrame(s, columns=['foo'])
#                   foo
# 0   [4, 14, 9, 16, 5]
# 1  [16, 16, 5, 4, 19]
# 2  [7, 10, 15, 13, 2]

然后您可以通过在数组列表上调用 pd.DataFrame 将其转换为形状为 (3,5) 的 DataFrame:

pd.DataFrame(df['foo'].tolist())
#     0   1   2   3   4
# 0   4  14   9  16   5
# 1  16  16   5   4  19
# 2   7  10  15  13   2

pd.DataFrame(df['foo'].tolist()).values.shape
# (3, 5)

关于python - 如何从 Pandas 数据框中获取二维 numpy 数组? - 错误的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27667301/

相关文章:

python - 根据其他两个数据框列中的值条件创建新列

python - 如何在 Redis 中为自定义类或对象添加唯一元素

python - 对带有异常的字符串进行标题化

Python 将 k-means 集群与实例相关联

python - numpy.cov() 异常 : 'float' object has no attribute 'shape'

python - 将两个日期时间连接成字符串日期范围

python - 如何根据两组列之间的值组合创建列?

python - get_num_instances 引发 InvalidVersionError

python - 如何创建一个新列,给出 python 数据框中该特定月份的天数?

numpy - 从顶点坐标创建三角形网格