我有一個關于通過選項填充pandas資料框架的問題,如下所示:
要求:1.
請求。在'brand'=='All'或'lo'=='All'的情況下,將排除在過濾之外。 問題。我試著按下面的方法處理,但沒有效果。請幫助我修改代碼。
def filter_for_company(df_source, season, brand, lo)。
mask = (
(df_source['Production Priority'] == 'Primary')
& (df_source['Season'] == season)
& (if brand =='All':
通過。
else:
df_source['brand'] == brand
)
& (if lo ='All':
pass: pass.
else:
df_source['聯絡處代碼'/span>] == lo
)
)
company_df = df_source.loc[mask,:] 。
return company_df
uj5u.com熱心網友回復:
你在掩碼定義中的if-else陳述句沒有給你你想要的布爾條件。 你可以嘗試修改代碼以正確設定布爾條件,如下所示:
def filter_for_company(df_source, season, brand, lo)。
mask = (
(df_source['Production Priority'] == 'Primary')
& (df_source['Season'] == season)
& (brand !='All')
& (lo !='All')
)
if brand !='All':
df_source['Brand'] == brand
if lo !='All':
df_source['聯絡處代碼'/span>] == lo
company_df = df_source.loc[mask,:].
return company_df
請注意,這可能還不是實作你的目的的最佳優化代碼。 然而,如果沒有資料框架和樣本資料的整體情況,就很難進一步優化它。
uj5u.com熱心網友回復:
使用loc或iloc的pandas資料框架的條件切分被設計為基于資料框架中實際存在的值進行過濾。您想實作的目標應該由呼叫您的過濾函式的代碼單獨處理。
然而,如果你無法控制,你可以按以下方式修改你的函式:
def filter_for_company(df_source, season, brand, lo)。
mask = (
(df_source["Production Priority"/span>] == "Primary"/span>)
& (df_source["season"] == season)
)
if brand != "All":
df_source = df_source[df_source["Brand"] ==品牌]
if lo != "All":
df_source = df_source[df_source["聯絡處代碼"] == lo)
company_df = df_source.loc[mask, :]
return company_df
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/307646.html
標籤:
