如何从熊猫数据框中提取索引值和元素值

时间:2020-05-22 11:42:31

标签: python pandas dataframe

我有一个包含以下内容的数据框,

                   Reading
Date                        
2020-05-09 14:54:00    13661
2020-05-09 14:55:00    13672
2020-05-09 14:56:00    14251
2020-05-09 14:59:00    15255

我已经弄清楚了如何提取最后一个元素:

lastelement =(series [“阅读”] .iloc [-1])

这给了我“ 15255”

注意:第一列是索引,而不是数据帧中的列。

所以我也想提取相同元素的索引值(在读数列中可能不是唯一的),即“ 2020-05-09 14:59:00”

我可以帮忙吗?

谢谢

(原谅我,如果我的问题很差,这是我在stackoverflow上的第一篇文章!-我通常可以从此处提出的所有其他问题/答案中得出答案)

4 个答案:

答案 0 :(得分:0)

您可以简单地使用df.tail()

df.tail(1)

如果只需要索引值,则可以添加:

df.tail(1).index.values

答案 1 :(得分:0)

您可以尝试以下代码:-

data = [['2020-05-09 14:54:00', 13661],
        ['2020-05-09 14:55:00', 15255],
        ['2020-05-09 14:55:00', 13672],
        ['2020-05-09 14:56:00', 15255],
        ['2020-05-09 14:56:00', 14251],
        ['2020-05-09 14:59:00', 15255]]
df = pd.DataFrame(data, columns=["Date","Reading"])
df.set_index("Date",inplace=True)
last_element=df.Reading[len(df)-1]
last_element_indices = list(df[df["Reading"]==last_element].index.tolist())
print("Last Element :",last_element)
print("Indices :", last_element_indices)

预期输出:-

Last Element : 15255
Indices : ['2020-05-09 14:55:00', '2020-05-09 14:56:00', '2020-05-09 14:59:00']

希望这可以解决您的问题。

答案 2 :(得分:0)

将数据帧与过滤后的值进行比较,squeeze将其获得布尔数组,并对索引进行索引以获取ur值:

df.index[df.eq(df.iloc[-1]).squeeze()]

Index(['2020-05-09 14:55:00', '2020-05-09 14:56:00', '2020-05-09 14:59:00'], dtype='object', name='Date')

答案 3 :(得分:-1)

用于读取和索引准确值。

尝试:

df.tail(1).Reading.values[0]
df.tail(1).Date.values[0]