我的理解是pd.DataFrame().shapereturns(n_rows,n_columns).
但是,当构造数据帧并且索引与数据形状不匹配时,pandas会将形状为(n_columns,n_rows)的ValueError引发.
例:
df_2 = pd.DataFrame(np.random.randn(10,2), index = range(9))
ValueError: Shape of passed values is (2, 10), indices imply (2, 9)
为什么不会打印ValueError:
传递值的形状是(10,2),指数暗示(9,2)
熊猫版:’0.17.1′
解决方法:
当pandas在这里说“indices”时它意味着索引和列(它们都是Index类型).
In [11]: df = pd.DataFrame(np.random.randn(3,2))
In [12]: df.index
Out[12]: Int64Index([0, 1, 2], dtype='int64')
In [13]: df.columns
Out[13]: Int64Index([0, 1], dtype='int64')
你传递的东西长度为9 .index索引,长度为2 .columns索引,因此错误信息……
也就是说:您的代码相当于:
In [21]: df = pd.DataFrame(np.random.randn(10,2), index=np.arange(9), columns=np.arange(2))
ValueError: Shape of passed values is (2, 10), indices imply (2, 9)
当你想要的是:
df = pd.DataFrame(np.random.randn(10,2), index=np.arange(10), colummns=np.arange(2))
# equivalently
df = pd.DataFrame(np.random.randn(10,2), index=np.arange(10))
df = pd.DataFrame(np.random.randn(10,2))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。