簡體   English   中英

將簡單的 excel function 轉換為 pandas df

[英]Transforming a simple excel function into pandas df

我是 python 的初學者,我嘗試將 excel 表轉換為 pandas dataframe。

我在 excel 中有以下 if 語句:=IF(MOD(F183,2)=1, "PAUSE", "BREAK")

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

我開始定義一個 function,然后將其放入 dataframe with.apply,但我在一開始就很難設置 function。 這就是我到目前為止所擁有的:

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

當我用例如 pause(2) 調用 function 時,我得到一個值錯誤。

謝謝你的任何建議

你可以這樣做 - 電子表格中的 F 列由 df['Quarter'] 表示

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

編輯:我會稍微編輯 function 以僅采用值,然后應用將 function 映射到 df['Quarters'] 系列的每個元素的“地圖”

def pause(i):
    if i%2 == 1:
        return "PAUSE"
    else: 
        return "BREAK"

df.Quarter.map(pause)

Edit2:通過申請 function,我會傳遞這個 lambda function - 似乎也可以工作

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM