我是 python 的初學者,我嘗試將 excel 表轉換為 pandas 資料框。
我在 excel 中有以下 if 陳述句: =IF(MOD(F183,2)=1, "PAUSE", "BREAK")
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"
當我使用例如 pause(2) 呼叫該函式時,我得到一個值錯誤。
感謝您的任何建議
uj5u.com熱心網友回復:
您可以這樣做 - 電子表格中的 F 列由 df['Quarter'] 表示
import numpy as np
df['PAUSE_BREAK']=np.where(df['Quarter']%2==0,'BREAK','PAUSE')
編輯:我會稍微編輯該函式以僅采用值,然后應用將該函式映射到該系列 df['Quarters'] 的每個元素的'map'
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/470317.html
下一篇:函式正在改變矩陣