比较数据集中的当前行和上一行

时间:2018-05-03 09:27:22

标签: python pandas dataset

我有一个包含每行标记的数据集。 我想计算其标签为“Tag1”的行数,其前一行的标签为“Tag2”

我写了这段代码,但它抛出“字符串索引必须是整数”错误。

    counter = 0
    for index, row in train.iterrows():
        if index + 1 < train.shape[0]:
            if row['tag'] == "Tag1" and row[index + 1]['tag'] == "Tag2":
                counter += 1

任何人都可以帮助我使其工作或以其他方式(可能使用班次)?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您的代码正在执行与您所描述的不同的操作。它会检查index+1 ad&#39; Tag2&#39;。为此,我们可以使用shift(-1)

train['tag1'] = train['tag'].shift(-1)
len(train[(train['tag']=="Tag1") & (train['tag1'] =="Tag2")])

答案 1 :(得分:1)

row[index + 1]['tag'] - 这是你的问题。这不会访问下一行。为此,您需要使用

train['tag'][index + 1]