当前位置:  开发笔记 > 编程语言 > 正文

获取没有索引的dataframe列的最后一个值

如何解决《获取没有索引的dataframe列的最后一个值》经验,为你挑选了1个好方法。

假设我有一个DataFrame,例如:

df = pd.DataFrame(np.random.randn(10,5), columns = ['a','b','c','d','e'])

我想检索列e中的最后一个值.我可以:

df['e'].tail(1)

但是这会返回一个带有索引9的系列.理想情况下,我只想获得价值作为我可以直接使用的数字.我也可以这样做:

np.array(df['e'].tail(1))

但是这将要求我在我真正使用它之前访问/调用它的第0个元素.有没有更直接/简单的方法来做到这一点?



1> Anton Protop..:

你可以试试ilocdataframe的方法:

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

或者如果你想要标量,你可以使用iat更快的标量.来自docs:

如果您只想访问标量值,最快的方法是使用在所有数据结构上实现的atiat方法

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

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有