数据框中最后一个元素的访问索引

新手上路,请多包涵

我四处寻找这个但我似乎找不到它(尽管它一定是非常微不足道的)。

我遇到的问题是我想检索数据框第一个和最后一个条目的列值。但如果我这样做:

 df.ix[0]['date']

我得到:

 datetime.datetime(2011, 1, 10, 16, 0)

但如果我这样做:

 df[-1:]['date']

我得到:

 myIndex
13         2011-12-20 16:00:00
Name: mydate

用不同的格式。理想情况下,我希望能够访问数据框最后一个索引的值,但我找不到方法。

我什至尝试用索引值创建一个列(IndexCopy)并尝试:

 df.ix[df.tail(1)['IndexCopy']]['mydate']

但这也会产生不同的格式(因为 df.tail(1)[‘IndexCopy’] 不输出简单的整数)。

有任何想法吗?

原文由 elelias 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 433
2 个回答

以前的答案现在被 .iloc 取代:

 >>> df = pd.DataFrame({"date": range(10, 64, 8)})
>>> df.index += 17
>>> df
    date
17    10
18    18
19    26
20    34
21    42
22    50
23    58
>>> df["date"].iloc[0]
10
>>> df["date"].iloc[-1]
58


我能想到的最短方式使用 .iget()

 >>> df = pd.DataFrame({"date": range(10, 64, 8)})
>>> df.index += 17
>>> df
    date
17    10
18    18
19    26
20    34
21    42
22    50
23    58
>>> df['date'].iget(0)
10
>>> df['date'].iget(-1)
58

或者:

 >>> df['date'][df.index[0]]
10
>>> df['date'][df.index[-1]]
58

还有 .first_valid_index().last_valid_index() ,但取决于你是否要排除 NaN 他们可能不是你想要的

请记住 df.ix[0] 不会给你第一个,而是索引为 0 的那个。例如,在上述情况下, df.ix[0] 会产生

>>> df.ix[0]
Traceback (most recent call last):
  File "<ipython-input-489-494245247e87>", line 1, in <module>
    df.ix[0]
[...]
KeyError: 0

原文由 DSM 发布,翻译遵循 CC BY-SA 3.0 许可协议

Get index of a row of a pandas dataframe as an integer 中 结合@comte 的答案和 dmdip 的答案

df.tail(1).index.item()

给你指数的价值。


请注意,索引 并不 总是定义明确,无论它们是多索引还是单索引。使用索引修改数据帧可能会导致意外行为。我们将有一个多索引案例的示例,但 _请注意,这在单索引案例中也是如此_。

说我们有

df = pd.DataFrame({'x':[1,1,3,3], 'y':[3,3,5,5]}, index=[11,11,12,12]).stack()

11  x    1
    y    3
    x    1
    y    3
12  x    3
    y    5              # the index is (12, 'y')
    x    3
    y    5              # the index is also (12, 'y')

df.tail(1).index.item() # gives (12, 'y')

尝试访问索引为 df[12, "y"] 的最后一个元素会产生

(12, y)    5
(12, y)    5
dtype: int64

如果您尝试根据索引修改数据 (12, y) ,您将修改两行而不是一行。因此,即使我们学会了访问最后一行索引的值, 如果您想根据索引更改最后一行的值,这可能不是一个好主意, 因为可能有许多共享相同的索引。在这种情况下,您应该使用 df.iloc[-1] 访问最后一行。

参考

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Index.item.html

原文由 Tai 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题