我想初始化一个数据框并设置其列和索引,如下所示,但我在遇到这样的问题时遇到了一些问题:
pd1 = pd.DataFrame(Matrix, columns=da, index=cl)
从上面的矩阵定义为:
Matrix = [[[0], [0], [0]],
[[0], [0], [0]]]
和da as:
da = ['A','B']
和cl as:
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数据帧中解决这个问题?
答案 0 :(得分:2)
创建一个没有索引的数据框,你会发现pandas
按顺序解释你的矩阵:
>>> df = pd.DataFrame(Matrix)
>>> df
0 1 2
0 [0] [0] [0]
1 [0] [0] [0]
因此,您需要转置数据(或交换columns
和index
参数)。这样做了:
>>> df = pd.DataFrame(Matrix, index=da, columns=cl).transpose()
>>> df
A B
X [0] [0]
Y [0] [0]
Z [0] [0]
PS。我想知道你是否真的想要围绕每个值的括号。但也许你有理由......