Arrays PythonDataFrame-ValueError:使用序列设置数组元素
我在尝试访问使用元组作为列名称的Pandas数据帧的列时收到了这个神秘的错误消息 下面是一个简单的例子来说明和再现问题: -初始化-Arrays PythonDataFrame-ValueError:使用序列设置数组元素,arrays,python-3.x,pandas,dataframe,tuples,Arrays,Python 3.x,Pandas,Dataframe,Tuples,我在尝试访问使用元组作为列名称的Pandas数据帧的列时收到了这个神秘的错误消息 下面是一个简单的例子来说明和再现问题: -初始化- testDataFrame=pd.DataFrame(np.array([[8,1,2,3,9]]),columns=['Id1',(1, 'one'),(2, 'two'),(3, 'three'),'Id2'],dtype="object") -测验- testDataFrame[["Id2","Id1"]] #works testDataFrame[["
testDataFrame=pd.DataFrame(np.array([[8,1,2,3,9]]),columns=['Id1',(1, 'one'),(2, 'two'),(3, 'three'),'Id2'],dtype="object")
-测验-
testDataFrame[["Id2","Id1"]] #works
testDataFrame[["Id1","Id1"]] #works
testDataFrame[[(1, 'one'),"Id1"]] #works
testDataFrame[["Id1",(1, 'one')]] #return ValueError: setting an array element with a sequence
你知道列名的顺序有什么问题吗?为什么会出现这个错误
提前感谢您的见解
EDIT1:我的熊猫版本是:0.23.4
EDIT2:
以下是我收到的全部错误消息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-219-c5f714c2b560> in <module>
----> 1 testDataFrame[["Id1",(1, 'one')]]
~/anaconda3/envs/deep-learning/lib/python3.5/site-packages/pandas/core/frame.py in __getitem__(self, key)
2680 if isinstance(key, (Series, np.ndarray, Index, list)):
2681 # either boolean or fancy integer index
-> 2682 return self._getitem_array(key)
2683 elif isinstance(key, DataFrame):
2684 return self._getitem_frame(key)
~/anaconda3/envs/deep-learning/lib/python3.5/site-packages/pandas/core/frame.py in _getitem_array(self, key)
2707 def _getitem_array(self, key):
2708 # also raises Exception if object array with NA values
-> 2709 if com.is_bool_indexer(key):
2710 # warning here just in case -- previously __setitem__ was
2711 # reindexing but __getitem__ was not; it seems more reasonable to
~/anaconda3/envs/deep-learning/lib/python3.5/site-packages/pandas/core/common.py in is_bool_indexer(key)
113 elif isinstance(key, list):
114 try:
--> 115 arr = np.asarray(key)
116 return arr.dtype == np.bool_ and len(arr) == len(key)
117 except TypeError: # pragma: no cover
~/anaconda3/envs/deep-learning/lib/python3.5/site-packages/numpy/core/numeric.py in asarray(a, dtype, order)
499
500 """
--> 501 return array(a, dtype, copy=False, order=order)
502
503
ValueError: setting an array element with a sequence
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
---->1 testDataFrame[[“Id1”,(1,'一')]]
~/anaconda3/envs/deep learning/lib/python3.5/site-packages/pandas/core/frame.py in\uuu\u获取项目(self,key)
2680如果isinstance(键,(系列,np.ndarray,索引,列表)):
2681#布尔或奇异整数索引
->2682返回self.\u getitem\u数组(键)
2683 elif isinstance(键,数据帧):
2684返回自我。\u获取项目\u帧(键)
~/anaconda3/envs/deep learning/lib/python3.5/site-packages/pandas/core/frame.py in_getitem_数组(self,key)
2707 def_getitem_阵列(自身,密钥):
2708#如果对象数组具有NA值,也会引发异常
->2709如果com.is\u bool\u索引器(键):
2710#此处警告以防万一--之前uuuu setitem uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
2711#重新编制索引,但uu getitem uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;这样做似乎更合理
is\u bool\u索引器(键)中的~/anaconda3/envs/deep learning/lib/python3.5/site-packages/pandas/core/common.py
113 elif isinstance(键,列表):
114尝试:
-->115 arr=np.asarray(键)
116返回arr.dtype==np.bool和len(arr)==len(key)
117除类型错误外:#pragma:无封面
asarray中的~/anaconda3/envs/deep learning/lib/python3.5/site-packages/numpy/core/numeric.py(a,数据类型,顺序)
499
500 """
-->501返回数组(a,数据类型,copy=False,order=order)
502
503
ValueError:使用序列设置数组元素
对于我来说工作很好,你的pandas版本是什么?testDataFrame[[“Id1”,(1,'one')]
对我来说在pandas中没有问题.25.3
谢谢你的回答,我为问题添加了更多细节