我试图创建一个包含多个索引和一列的数据帧。如果我键入以下内容:
InitialPosition=pd.DataFrame( [1000000,1,1] ,index=['Cash'],columns=['a','b','c'] )
我得到一个错误:
^{pr2}$如果我将数组更改为列,例如:
InitialPosition=pd.DataFrame( [[1000000],[1],[1]] ,index=['Cash'],columns=['a','b','c'] )
我的错误是:
AssertionError: 3 columns passed, passed data had 1 columns
你知道为什么会这样吗?在
一种解决方案是:
InitialPosition=pd.DataFrame( [1000000,1,1] ,columns=['Cash'],index=['a','b','c'] ).T
但看起来不太优雅。在
问题是,您将
index
指定为'Cash'
,它只有1个索引。 并且[1000000,1,1]
正在传递3行数据。在看看这个:
您将传递3行数据、1 x列和3个索引,这与数据帧的结构相匹配。在
但是,想想数据帧中的数组,比如
^{pr2}$x
,y
坐标和columns
,rows
结构中的数组,你的数据框应该是这样的:[[10000000, 1, 1]]
翻译成like onrows[0]
,columns[0], columns[1], columns[2] = ...
,列标签'a'
,'b'
,'c'
和1 x索引'cash'
。在或者
其中,
[[1000000], [1], [1]]
翻译成rows[0], columns[0] = [1000000]
,rows[1], columns[0] = 1
,rows[2], columns[0] = 1
,其中有1 x列'Cash'
,3个索引'a'
,'b'
,'c'
,然后在末尾进行转置。在这两种方法都会得到这样的结果:
我强烈建议你阅读这篇10 Minutes to pandas这篇文章解释得相当透彻,但也不难理解。在
相关问题 更多 >
编程相关推荐