首页 > 解决方案 > 熊猫递归函数中的语法错误?

问题描述

语言:Python 3 平台:Jupyter Notebook

我想计算同一用户在同一日期和时间在数据框中发送的消息量。按照这个例子,我尝试使用递归函数来做到这一点。

在 Pandas 数据框中定义递归函数

下面是我的尝试。

interaction = 0

for i, row in df.iterrows():
   if ((df2['names'].iloc[i] == (df2['names'].iloc[i-1]) & (df2['time'].iloc[i] == df2['time'].iloc[i-1]) & (df2['date'].iloc[i]== df2['date'].iloc[i-1]))
           interaction = interaction
       else:
           interaction = interaction+1

return interaction

但它返回此错误,

  File "<ipython-input-171-9670327f0e8e>", line 6
    interaction = interaction
              ^
SyntaxError: invalid syntax

我很抱歉这个问题是如此基本,但我很沮丧。我尝试更改变量名称,但它一直返回相同的错误。当我把它改成return这样,

interaction = 0

for i, row in df.iterrows():
    if ((df2['names'].iloc[i] == (df2['names'].iloc[i-1]) & (df2['time'].iloc[i] == df2['time'].iloc[i-1]) & (df2['date'].iloc[i]== df2['date'].iloc[i-1]))
            return interaction
        else:
            return (interaction+1)

return interaction

它返回此错误。

 File "<ipython-input-179-99d835a6b0e6>", line 5
    return interaction
         ^
SyntaxError: invalid syntax

我在条件之后的 if 之后删除了冒号,因为它也是语法错误。感谢您的帮助。

编辑:如果我包含冒号,这是错误

File "<ipython-input-184-041229eea329>", line 5
    & (df2['date'].iloc[i]== df2['date'].iloc[i-1])):
                                                    ^
SyntaxError: invalid syntax

标签: pythonpandassyntax

解决方案


:在 if 语句的末尾缺少


推荐阅读