![](/img/trans.png)
[英]Python pandas: dynamically change values in unspecified number of columns
[英]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.