如何在 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 上发生非法反射访问操作错误
如何更改 DataFrame 的架构(修复一些嵌套字段的名称)?