我到处寻找这个,但我似乎找不到它(尽管它一定非常琐碎)。
我的问题是,我想检索数据帧的第一个和最后一个条目的列的值。但是如果我这样做了:
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']不输出简单的整数)。
有什么想法吗?
df.tail(1).index
似乎是最可读的
结合@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
以前的答案现在被. 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\u valid\u index()
和.last\u valid\u index()
,但这取决于您是否要排除NaN
s,它们可能不是您想要的。
请记住,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
本文向大家介绍php访问数组最后一个元素的函数end()用法,包括了php访问数组最后一个元素的函数end()用法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php访问数组最后一个元素的函数end()用法。分享给大家供大家参考。具体分析如下: end()函数在PHP中用于检索数组中的最后一个元素。end()函数需要一个数组作为其唯一参数,并返回给定数组最后一个元素的元素值。 上面的代码
本文向大家介绍JavaScript数组中的第一个元素和最后一个元素?,包括了JavaScript数组中的第一个元素和最后一个元素?的使用技巧和注意事项,需要的朋友参考一下 数组是一组元素。每个元素都有其自己的 索引值。我们可以使用这些索引访问任何元素。但是,对于最后一个元素,直到知道数组中存在的元素数量,我们才知道索引。在这种情况下,我们必须使用逻辑。让我们简要地讨论这些细节。 访问第一个元素 因
我想使用RestAssured来测试一个返回JSON对象列表的endpoint。如何使用RestAssured JsonPath验证列表中最后一个对象的内容? 示例返回值: 我尝试使用负索引:< code>body("[-1])。foo ",equal to(" brazz "),但这并不奏效,因为放心认为< code>"[-1]。foo"为空列表。 如何使用JsonPath语法访问列表的最后一个
我正在改装一些现有代码以使用Spark。我有多个包含不同数据集的数据帧。在转换主数据帧(或主数据集)时,我需要使用来自其他数据帧的数据来完成转换。我还有一种情况(至少在当前结构中),我需要在另一个数据帧的转换函数中创建新的数据帧。 我试图确定以下内容: 我可以在另一个数据帧的转换函数中访问数据帧吗 关于如何处理这种情况的指针将非常有帮助。
问题内容: 从像这样的PySpark SQL数据框 如何获得最后一行。(就像df.limit(1)一样,我可以将数据帧的第一行放入新的数据帧中)。 以及如何按索引访问数据框行。12或200。 我可以在熊猫里做 我只是很好奇如何以这种方式或其他方式访问pyspark数据框。 谢谢 问题答案: 如何获得最后一行。 假设所有列都可修改的漫长而丑陋的方式: 如果不是所有列都可以订购,则可以尝试: 注意。/
尝试以这种方式访问pandas数据帧中的单个元素时出错test_df[“LABEL”][0]。以下是关于如何加载数据的代码片段: 以下是我得到的错误: 文件“code.py”,第80行,在getitem result=self.index.get_value(self,key)文件“/usr/local/lib/python2.7/dist-packages/pandas/core/series.