我有一个包含每行标记的数据集。 我想计算其标签为“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
任何人都可以帮助我使其工作或以其他方式(可能使用班次)?
提前致谢。
答案 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]