python - 如何使用 df.iterrows() 匹配同一列中的前一行值?

标签 python python-3.x dataframe

我正在尝试使用索引号将前一行值与特定值进行匹配。 但我不知道如何实现这一点。 您能帮我解决这个问题吗?

示例:

operator_type   Operator
    =            None
    =            AND
    =            None
    =            OR
    =            None
    =            None

我正在尝试的代码:

for index, row in df.iterrows():
       if row['Operator'] == None and row['operator_type'] == '=' and row['Operator'].(index-1).values != 'AND':
             print('alka')

错误:

File "imed_cons_new.py", line 68
    if row['and_or_not_oprtor'] == None and row['operator_type'] == '=' and row['and_or_not_oprtor'].(index-1).values != 'AND':
                                                                                                     ^
SyntaxError: invalid syntax

最佳答案

你应该尝试“shift()”

df['previous'] = df['Operator'].shift()

for index, row in df.iterrows():
   if row['Operator'] == None and row['operator_type'] == '=' and row['previous'] != 'AND':
     print(index,'alka')

输出:

0 alka
4 alka
5 alka

关于python - 如何使用 df.iterrows() 匹配同一列中的前一行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60389485/

相关文章:

python - django 模板能否找到其命名的 url,或者基本模板能否知道哪个模板正在扩展它?

python - 如何检查字典中的键是否出现两次或两次以上?

python - Kivy 属性错误 - 对象没有属性 - 尝试用 kv 语言连接小部件

python - 如何使用 pathlib 规范化相对路径

python - Pandas - 合并行并使用 'get_dummies' 添加列

python - 如何将输入函数与 def 函数一起使用?

python - 一个列表中的 .pop() 和 .append() 会影响另一列表吗?

python - 登录 GCP 和本地

python - 如何将数据帧展平为 1 行并更改列以使列为 : "column1.index1", "column1.index2"等?”

由列表索引的python数据框