簡體   English   中英

制作一個 Function 接受未指定數量的列和過濾器 Python

[英]Make a Function That Accepts An Unspecified Number of Columns & Filters in Python

假設我們有一個 dataframe df

column1 column2 column3
0   A1  1   2
1   A2  2   3
2   A3  3   4

我想制作一個 function 進行過濾。 但是,我不知道要過濾多少列。 根據數據集,我可以使用兩列或僅使用一列。 例如,我想保留大於或等於 2 的column2 ,即df[df.column2 >= 2] 但是,在不同的時間,我想進行兩次過濾:保留大於或等於 2 的column2 ,即df[df.column2 >= 2]並保留大於或等於 4 的column3 ,即df[df.column3 >= 4]

如何捕捉這一切? 我認為col參數應該有一個星號和一個指定要過濾的數字的num參數。 但是,我不知道如何將不等式設置為參數。

def select_filters(*col, num):
    return df.col

有兩種方法可以解決此類問題,第一種是使用列表作為您的參數:

def select_filters(col, num):
   for i in range(num):
      #Do whatever your filtering is here
      return col[num]

select_filters([df.column1,df.column2,..],2)

可變數量參數的另一個選項如下所示:

def select_filters(num,*col):
      #Do whatever your filtering is here

但是,您必須確保變量 col 出現在 num 之后,而不是之前。 我不確定您的確切過濾條件,但如果我理解正確的話,這應該(希望)足以解決您的問題。

暫無
暫無

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

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