将一个简单的 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)
我是 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)