Python:打印 Pandas dataframe 返回 numpy.ndarray 属性错误

标签 python pandas numpy dataframe

我正在尝试使用 numpy 数组创建一个 pandas 数据框。 数据、索引和列数组都是 numpy 的“ndarrays”(分别是 2D、1D 和 1D),并且为了这个例子都是 float64。

import pandas as pd
import numpy as np

data = np.zeros((100, 15))
index = np.zeros((100, 1))
columns = np.zeros ((15, 1))

df1 = pd.DataFrame(data=data, index=index, columns=columns)
print(df1)

当我打印 df1 时,我得到了这个我无法解决的属性错误:

AttributeError: 'numpy.ndarray' object has no attribute 'endswith'

当我打印 print(df1.to_string()) 时返回相同的错误,但是如果我打印 print(df1.values)print( df1.index)print(df1.columns),返回预期的值。

我是不是漏掉了什么?不可否认,我对使用 Pandas 还很陌生,但我认为这个简单的例子会很好用。

最佳答案

长话短说

>>> index = np.zeros(100)
>>> columns = np.zeros (15)

详情

您向 np.zeros 传递了一个元组参数,这导致了一个数组的数组

>>> np.zeros((15,1))
array([[ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.],
   [ 0.]])

你会得到一个错误,因为 i) 每个元素都是一个数组,并且 ii) endswith 没有为数组定义。

indexcolumns 都采用类似列表(包括array)的属性。您无需担心它们是矩阵中的“列”还是“行”(我想这就是您使用元组的原因)。

你只需要一个数组...

>>> np.zeros(15)
array([ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
    0.,  0.])

关于Python:打印 Pandas dataframe 返回 numpy.ndarray 属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40337393/

相关文章:

python - Pandas - 将具有多个索引的字典映射到列

python - 以日期时间形式读入年份、DOY 和微秒数据

python - 如何根据多个条件在 df 中创建新列?

python - 在python中从sql中提取数据(每秒一次)

python - 无法在 Windows 上安装 Fiona

python - 无法 reshape (枢轴) Pandas DF

python - SQL 数据库是否比大型 Pandas 数据框的内存/性能效率更高?

python - 如何从文本文件中提取数字数据

python - 当其中有未知元素时,操纵张量形状的正确方法是什么?

python - 分组后折叠数据框 pandas