将一个简单的 excel 函数转换为 pandas df

Transforming a simple excel function into pandas df

我是 python 的初学者,我尝试将 excel sheet 转换为 pandas 数据框。

我在 excel 中有以下 if 语句: =IF(MOD(F183,2)=1, "暂停", "中断")

F183列代表8个季度:1,2,3,4,5,6,7,8

我开始定义一个函数,然后使用 .apply 将其放入数据框中,但我一开始就很难设置该函数。这就是我目前所拥有的:

def pause(i):
    i = df['Quarter']
    if i.mod(2) == 1:
        return "PAUSE"
    else: 
        return "BREAK"

当我用例如调用函数时暂停(2),我得到一个值错误。

感谢您的任何建议

您可以这样做 - 电子表格中的 F 列由 df['Quarter']

表示
import numpy as np
df['PAUSE_BREAK']=np.where(df['Quarter']%2==0,'BREAK','PAUSE')

编辑:我会稍微编辑函数以仅接受值,然后应用 'map' 将该函数映射到系列 df['Quarters']

的每个元素
def pause(i):
    if i%2 == 1:
        return "PAUSE"
    else: 
        return "BREAK"

df.Quarter.map(pause)

Edit2:使用 apply 函数,我将传入此 lambda 函数 - 似乎也可以工作

df.apply(lambda row:'PAUSE' if row['Quarter']%2==1 else 'BREAK',axis=1)