簡體   English   中英

使用 Function 對 Pandas Dataframe 進行條件迭代

[英]Conditional Iteration over a Pandas Dataframe using Function

每個月我都會得到一個 dataframe,所以每個月我都必須對 dataframe 做一些調整,我想創建一個 function 以便將它應用於每個 dataframe 而無需再次創建代碼。 我有第一個 dataframe,稱為 enero:

for i in range(0,len(enero)):
    if enero.loc[i,"VENDEDOR_CLIENTE"] == "ARTURO":
        enero.loc[i,"MARCA"]="MAQUILA PINTUCO"
    elif enero.loc[i,"PROVEEDOR"] == "PEPITO" and enero.loc[i,"VENDEDOR_CLIENTE"] != "ARTURO":
        enero.loc[i,"MARCA"]="PINTURAS"

對於第二個 dataframe,稱為 febrero:

for i in range(0,len(febrero)):
    if febrero.loc[i,"VENDEDOR_CLIENTE"] == "ARTURO":
        febrero.loc[i,"MARCA"]="MAQUILA PINTUCO"
    elif febrero.loc[i,"PROVEEDOR"] == "PEPITO" and febrero.loc[i,"VENDEDOR_CLIENTE"] != "ARTURO":
        febrero.loc[i,"MARCA"]="PINTURAS"

所以,為了不每個月都重復代碼,我想創建一個 function:

def ajustemarca(df,VENDEDOR_CLIENTE,MARCA,PROVEEDOR):
    for i in range(0,len(df)):
        if df.loc[i,"VENDEDOR_CLIENTE"] == "ARTURO":
            df.loc[i,"MARCA"]="MAQUILA PINTUCO"
        elif df.loc[i,"PROVEEDOR"] == "PEPITO" and df.loc[i,"VENDEDOR_CLIENTE"] != "ARTURO":
            df.loc[i,"MARCA"]="PINTURAS"
    return df.loc[i,"MARCA"]

然后,我撥打 function:

enero.apply(ajustemarca)
febrero.apply(ajustemarca)

但是,它不起作用。 我該怎么做 function?

我分享了一個有人在這里寫的答案,但它被刪除了:(

答案很完美,現在代碼可以工作了:

def ajustemarca(df):
    for i in range(0,len(df)):
        if df.loc[i,"VENDEDOR_CLIENTE"] == "ARTURO":
            df.loc[i,"MARCA"]="MAQUILA PINTUCO"
        elif df.loc[i,"PROVEEDOR"] == "PEPITO." and df.loc[i,"VENDEDOR_CLIENTE"] != "ARTURO":
             df.loc[i,"MARCA"]="PINTURAS"
ajustemarca(enero)
ajustemarca(febrero)

暫無
暫無

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

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