python - 如何将代码构造编写为函数

标签 python python-2.7 function pandas split-apply-combine

我是编程和 python 的新手,想使用“def”“return”结构将以下代码编写为函数:

df.loc[df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1, 'CONSECUTIVE_DAY'] = True
df.loc[(df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1) | (df['DATE_INT'].shift(1) - df['DATE_INT'] == -1), 'CONSECUTIVE_DAY'] = True

我的尝试返回无效语法:

def ConsecutiveID(df, column ='DATE_INT'):
    return  df.loc[df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1, 'CONSECUTIVE_DAY'] = True
            df.loc[(df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1) | (df['DATE_INT'].shift(1) - df['DATE_INT'] == -1), 'CONSECUTIVE_DAY'] = True

我的目标是最终按如下方式使用我的 ConsecutiveID 函数:

    df.groupby(['COUNTY_GEOID_YEAR','TEMPBIN']).apply(ConsecutiveID)

我正在应用拆分-应用-组合结构。 groupby 在拆分我的数据的地方,我使用了我想在 apply 中构建的函数。

我的主要问题是如何编写我称为 ConsecutiveID 的函数。感谢您的帮助。

最佳答案

def ConsecutiveID(df):
    df = df.copy()
    cond1 = df['DATE_INT'].shift(-1) - df['DATE_INT'] == 1
    cond2 = df['DATE_INT'].shift(1) - df['DATE_INT'] == -1

    df.loc[cond1 | cond2, 'CONSECUTIVE_DAY'] = True

    return df

关于python - 如何将代码构造编写为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38775794/

相关文章:

python - 生成具有给定(数值)分布的随机数

python-shell将json从nodejs发送到python

python - 将图像从黑色像素复制为白色像素

jquery - jQuery 中的 .animate() 回调可以有一个步骤函数和一个普通函数吗?

php - 解析错误: unexpected '@' symbol in constant function in php

python - JSON序列化以元组为键的字典

python - Odoo 10 : Call a confirmation form (Yes/No) from Wizard

python - 在 Python 中运行 SQL 查询

python - 了解类类型 '__main__.ClassName'

javascript - 有没有办法用一个函数包装所有的 JavaScript 方法?