让我们考虑以下数据框:
import pandas as pd
d = {'col1': [1, 2, 3], 'col2': [3, 4, 5]}
df=pd.DataFrame(data=d)
如果我想访问熊猫系列df['col1']
中的第一个元素,我可以简单地转到df['col1'][0]
。
但是如何访问本系列中的 last 元素?
我尝试过df['col1'][-1]
,它返回以下错误:
KeyError:-1公升
我知道我可以选择类似df['col1'][len(df)-1]
的东西,但是为什么在这里无法进行反向索引?
答案 0 :(得分:3)
对于选择最后一个值,需要Series.iloc
或Series.iat
,因为df['col1']
返回Series
:
print (df['col1'].iloc[-1])
3
print (df['col1'].iat[-1])
3
或将Series转换为numpy数组,然后选择last:
print (df['col1'].values[-1])
3
或使用DataFrame.iloc
或DataFrame.iat
-但在Index.get_loc
之前是列的必要位置:
print (df.iloc[-1, df.columns.get_loc('col1')])
3
print (df.iat[-1, df.columns.get_loc('col1')])
3
或者可以使用索引的最后一个值(不必重复),然后按DataFrame.loc
进行选择:
print (df.loc[df.index[-1], 'col1'])
3
答案 1 :(得分:1)
您也可以使用tail
:
print(df['col1'].tail(1).item())
输出:
3