【问题标题】:syntax error in recursive function for pandas?熊猫递归函数中的语法错误?
【发布时间】:2020-06-30 10:34:56
【问题描述】:

语言:Python 3 平台:Jupyter Notebook

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

Define recursive function in Pandas dataframe

下面是我的尝试。

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

【问题讨论】:

  • 检查括号

标签: python pandas syntax


【解决方案1】:

if 语句末尾缺少:

【讨论】:

  • 我没有使用它,因为冒号只会返回更多错误。
猜你喜欢
  • 2018-03-22
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多