我想在列中检索最后一个值。我可以做:
e
但这将返回一个具有索引9的系列。理想情况下,我只想将价值作为我可以直接使用的数字。我也可以做:
df['e'].tail(1)
但是,这将要求我访问/调用它的0元素,然后才能真正使用它。有一种更直接/简便的方法吗?
您可以尝试
np.array(df['e'].tail(1))
数据框的方法:iloc
In [26]: df
Out[26]:
a b c d e
0 -1.079547 -0.722903 0.457495 -0.687271 -0.787058
1 1.326133 1.359255 -0.964076 -1.280502 1.460792
2 0.479599 -1.465210 -0.058247 -0.984733 -0.348068
3 -0.608238 -1.238068 -0.126889 0.572662 -1.489641
4 -1.533707 -0.218298 -0.877619 0.679370 0.485987
5 -0.864651 -0.180165 -0.528939 0.270885 1.313946
6 0.747612 -1.206509 0.616815 -1.758354 -0.158203
7 -2.309582 -0.739730 -0.004303 0.125640 -0.973230
8 1.735822 -0.750698 1.225104 0.431583 -1.483274
9 -0.374557 -1.132354 0.875028 0.032615 -1.131971
In [27]: df['e'].iloc[-1]
Out[27]: -1.1319705662711321
。来自docs:
如果您只想访问标量值,最快的方法就是使用
iat
和at
方法,这些方法将在所有数据结构上实现
try
iat
基准测试:In [28]: df.e.iat[-1] Out[28]: -1.1319705662711321
In [31]: %timeit df.e.iat[-1]
100000 loops, best of 3: 18 µs per loop
In [32]: %timeit df.e.iloc[-1]
10000 loops, best of 3: 24 µs per loop
有时,df['e'].iloc[[-1]]
行不起作用
我们还可以通过索引
df['e'].iloc[-1]
和
df.index
:
来访问它。速度比没有索引的速度快,但要慢。
如果我们决定为“ E”列中的最后一个元素分配一个值,则上述方法比其他两个选项(9-11倍更快)要快得多:
df.at[df.index[-1], 'e']