从数据框中的单元格内部提取列表

时间:2017-01-04 08:13:14

标签: python pandas

我有一个数据框,其中一列有一个值列表。例如

    created      values
0   2016-12-21   [1,2,3,4]
1   2016-12-28   [6,7,8,9]
2   2017-01-4   [13,12,11,10]

假设我想在另一个list(13,12,11,10)中提取行列中的最后一个值。我使用iloc[]函数编写了一些代码,如下所示,但我收到了错误

  

TypeError:不可用类型:'list'

i=0
c=[]
while value in a['values']:
    i=i+1
    c=a['values'].iloc[i]    
c

下面是堆栈跟踪

TypeError                                 Traceback (most recent call last)
<ipython-input-18-a6f26f30f73d> in <module>()
      2 user_id=[]
      3 c=[]
----> 4 while user_id in a['user_ids']:
      5     i=i+1
      6     c=a['user_ids'].iloc[i]

C:\Users\aditya\Anaconda3\lib\site-packages\pandas\core\generic.py in             __   contains__(self, key)
    844     def __contains__(self, key):
    845         """True if the key is in the info axis"""
--> 846         return key in self._info_axis
    847 
    848     @property

C:\Users\aditya\Anaconda3\lib\site-packages\pandas\indexes\base.py in    _     _   contains__(self, key)
   1232 
   1233     def __contains__(self, key):
-> 1234         hash(key)
   1235         # work around some kind of odd cython bug
   1236         try:

TypeError: unhashable type: 'list'

3 个答案:

答案 0 :(得分:4)

我认为您需要iloc -1来选择列values的最后一个值:

print (a['values'].iloc[-1])
[13, 12, 11, 10]

答案 1 :(得分:3)

你可以做到

a['values'].iloc[-1]

[13, 12, 11, 10]

答案 2 :(得分:0)

另一种方式是:

a.loc[len(a)-1][1]