比较熊猫数据框中索引不同的值

时间:2020-04-02 10:35:23

标签: python pandas dataframe

我需要帮助比较不同索引的pandas数据框中的值。我已经从包含标题“时间”,“预测”,“引擎”的csv中读取了数据帧。 “时间”是一个以10分钟为步长的时间序列“ DD.MM.YYYY hh:mm:ss”,“预测的”和“引擎”的取值为0或1。因此,它看起来像这样:

+--------------------+---------+---------+
|Time                |Predicted|Engine   |
|01.01.2019  00:00:00|        0|        0|
|01.01.2019  00:10:00|        1|        0|
|01.01.2019  00:20:00|        1|        1|
|                 ...|      ...|      ...|

我想将[i]的预测值与[i + 1]的引擎值进行比较。

+--------------------+---------+---------+------+
|Time                |Predicted|Engine   |Result|
|01.01.2019  00:00:00|        0|        0|False | <- although prob. not defined ?
|01.01.2019  00:10:00|        1|        0|True  |
|01.01.2019  00:20:00|        1|        1|True  |
|                 ...|      ...|      ...|   ...|

这是我的初始代码(以澄清我的目标),结果是

ValueError:只能比较标记相同的Series对象

代码:

res = []
for i in df['Predicted']:
    if df['Predicted'][i:i+1] == df['Engine'][i+1:i+2]:
        res.append(True)
    else:
        res.append(False)
df['Result'] = res

我现在知道为什么它不起作用,但是我还没有找到解决这个问题的方法,因为我对编程还很陌生。

1 个答案:

答案 0 :(得分:3)

您可以使用shift,基本上可以将您的系列进行一定程度的偏移,然后将其与引擎进行比较:

df['Result'] = df['Predicted'].shift(1) == df['Engine']