如何在 Ubuntu 上修复 Dataframe Python 中的 Traceback 问题

Posted

技术标签:

【中文标题】如何在 Ubuntu 上修复 Dataframe Python 中的 Traceback 问题【英文标题】:How to fix a Traceback problem in Dataframe Python on Ubuntu 【发布时间】:2020-07-03 03:35:51 【问题描述】:

我尝试在 Python 中使用 DataFrame。命令是:

import pandas as pd
from numpy.random import uniform
df = pd.DataFrame(uniform(0,1,(3,4)),
                  index = 'A B C D'.split(),
                  columns='E F G H'.split())

但不幸的是,我收到以下错误。有人知道如何解决这个问题吗?

----------------------------------- ---------------------------- ValueError Traceback(最近一次调用 最后的) ~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在 create_block_manager_from_blocks(块,轴)1680 -> 1681 mgr = BlockManager(块,轴)1682 mgr._consolidate_inplace()

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在 init(自我、块、轴、do_integrity_check) 142 如果做完整性检查: --> 143 self._verify_integrity() 144

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在 _verify_integrity(self) 第344章 --> 345 构造错误(tot_items,block.shape[1:],self.axes) 第346章

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在施工错误(tot_items,block_shape,轴,e)1718 引发价值错误( -> 1719 "传递值的形状是 0,索引暗示 1".format(passed, imply) 1720 )

ValueError: 传递值的形状是 (5, 4),索引意味着 (4, 4)

在处理上述异常的过程中,又发生了一个异常:

ValueError Traceback(最近调用 最后)在 1 df = pd.DataFrame(uniform(0,1,(5,4)), 2 索引 = 'A B C D'.split(), ----> 3列='W X Y Z'.split())

~/anaconda3/lib/python3.7/site-packages/pandas/core/frame.py 在 init(self、data、index、columns、dtype、copy) 438 经理=init_dict(data.name:数据,索引,列,dtype=dtype) 439 其他: --> 440 mgr = init_ndarray(数据、索引、列、dtype=dtype、copy=copy) 441 442 # 因为数据是类似列表的,或者是可迭代的(将消耗到列表中)

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/construction.py 在 init_ndarray(值、索引、列、dtype、副本) 第211章 212 --> 213 return create_block_manager_from_blocks(block_values, [columns, index]) 214 215

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在 create_block_manager_from_blocks(块,轴)1686 blocks = [getattr(b, "values", b) for b in blocks] 1687 tot_items = sum(b.shape[0] for b in blocks) -> 1688 构造错误(tot_items,blocks[0].shape[1:],axes,e)1689 1690

~/anaconda3/lib/python3.7/site-packages/pandas/core/internals/managers.py 在施工错误(tot_items,block_shape,轴,e)1717 raise ValueError("指定索引传递的空数据。") 1718 引发价值错误( -> 1719 "传递值的形状是 0,索引暗示 1".format(passed, imply) 1720 ) 1721

ValueError: 传递值的形状是 (5, 4),索引意味着 (4, 4)

【问题讨论】:

【参考方案1】:

您正在创建一个 3x4 矩阵,但提供 4 个行索引。仅向您的 index 提供 3 行。

import pandas as pd
from numpy.random import uniform
df = pd.DataFrame(uniform(0,1,(3,4)),
              index = 'A B C'.split(),
              columns='E F G H'.split())

【讨论】:

以上是关于如何在 Ubuntu 上修复 Dataframe Python 中的 Traceback 问题的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 Hadoop 警告:在 Ubuntu 上发生非法反射访问操作错误

如何修复ubuntu14.04上核素的lldb错误?

如何更改 DataFrame 的架构(修复一些嵌套字段的名称)?

如何修复docker在ubuntu上docker-compose后进入重启状态的问题?

如何修复 Ubuntu 中检测到系统程序错误的问题

如何在 Ubuntu 下修复 apache 错误“不在配置的 docroot 中”