我有一个数据框,其中一列有一个值列表。例如
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'
答案 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]