Pandas和IPython的可变可见性问题

2024-09-28 03:18:47 发布

您现在位置:Python中文网/ 问答频道 /正文

当我尝试按所选索引值(在IPython会话中)筛选DataFrame时,会出现namererror异常。可以看到validnumpy.array,而labpandas.DataFrame对象。它们都已初始化并可访问。但是我不能把它们放在一起。错误如下:

In [51]: valid
Out[51]: 
array([38661, 44593, 38705, 38918, 38727, 38757, 38751, 38777, 38787,
       ...,    
       45328, 45337, 43645, 43694, 43701])

In [52]: lab
Out[52]: 
         0
39333   -1
39173   -1
42756   -1
39633   -1
38661   -1
44801   81
...    ...
39379   -1
39742   -1
44765  108
44279   -1
40584   -1
41047   -1
41833   98

[3299 rows x 1 columns]

In [53]: lab[lab.index.map(lambda x: x in valid)]
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/home/vitaly/progs/vnii_gochs/venv/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in <module>()
----> 1 lab[lab.index.map(lambda x: x in valid)]

/home/vitaly/progs/vnii_gochs/venv/lib/python2.7/site-packages/pandas/core/index.pyc in map(self, mapper)
   1558 
   1559     def map(self, mapper):
-> 1560         return self._arrmap(self.values, mapper)
   1561 
   1562     def isin(self, values, level=None):

/home/vitaly/progs/vnii_gochs/venv/lib/python2.7/site-packages/pandas/algos.so in pandas.algos.arrmap_int64 (pandas/algos.c:78469)()

/home/vitaly/progs/vnii_gochs/venv/lib/python2.7/site-packages/django/core/management/commands/shell.pyc in <lambda>(x)
----> 1 lab[lab.index.map(lambda x: x in valid)]

NameError: global name 'valid' is not defined

这个代码怎么了?你知道吗

UPD:lab.pkl(pickle格式),valid.npy(numpy二进制格式)


Tags: lambdainselfmappandashomeindexvenv
1条回答
网友
1楼 · 发布于 2024-09-28 03:18:47

不清楚您是尝试向lab添加新列,还是尝试按valid数组中指定的顺序获取值。要向lab添加新列,可以执行lab['new'] = valid。要获得根据valid数组中的值排序的序列对象,可以执行lab.loc[value]。如果您只需要原始numpy数组,请执行lab.loc[value].values

相关问题 更多 >

    热门问题