python - Pandas:数据帧错误 - 传递了 2 列,传递的数据有 3 列

标签 python python-3.x pandas numpy dataframe

我想初始化一个数据框并设置其列和索引,如下所示,但我在这样做时遇到一些问题:

pd1 = pd.DataFrame(Matrix, columns=da, index=cl)

从上面的矩阵定义为:

Matrix = [[[0], [0], [0]],
          [[0], [0], [0]]]

和da为:

da = ['A','B']

和类别:

cl = ['X','Y','Z']

执行此行时出现以下错误:

# caller's responsibility to check for this..
raise AssertionError('%d columns passed, passed data had %s '
                     'columns' % (len(columns), len(content)))
# provide soft conversion of object dtypes

AssertionError: 2 columns passed, passed data had 3 columns

如何在 python 数据框中解决这个问题?

最佳答案

制作一个没有索引的数据框,您会发现pandas按行解释您的矩阵:

>>> df = pd.DataFrame(Matrix)
>>> df
     0    1    2
0  [0]  [0]  [0]
1  [0]  [0]  [0]

因此您需要转置数据(或交换索引参数)。这可以完成工作:

>>> df = pd.DataFrame(Matrix, index=da, columns=cl).transpose()
>>> df
     A    B
X  [0]  [0]
Y  [0]  [0]
Z  [0]  [0]
PS。我想知道您是否真的想要每个值都加上括号。但也许你有一个理由......

关于python - Pandas:数据帧错误 - 传递了 2 列,传递的数据有 3 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43707296/

相关文章:

python - 如何根据行范围的满足条件删除列?

python - 如何使用特定的 python 版本创建 conda 环境?

python - 什么是过滤、排序和分组存储在大型文本文件中的数据的好方法

python - 你如何在 boost::python 中使用 "from __future__ import division"?

python - 在不将用户名/密码存储为明文的情况下进行 AD/LDAP 查询

python - 在 Python 中使用 delta 和 epsilon 求立方根

Python 3 索引超出范围错误

python - Pandas 将列名从一个数据框复制到另一个数据框

python - 启动 python Windows 服务可执行文件时出错

python - 将数据帧打印到 CSV 文件,保留非拉丁字符