【发布时间】:2022-07-21 17:59:18
【问题描述】:
我有以下玩具数据集
data = {"Subject":["1","2","3","3","4","5","5"],
"date": ["2020-05-01 16:54:25","2020-05-03 10:31:18","2020-05-08 10:10:40","2020-05-08 10:10:42","2020-05-06 09:30:40","2020-05-07 12:46:30","2020-05-07 12:55:10"],
"Accept": ["True","False","True","True","False","True","True"],
"Amount" : [150,30,32,32,300,100,50],
"accept_1": ["True","False","True","True","False","True","True"],
"amount_1" : [20,30,32,32,150,100,30],
"Transaction":["True","True","False","False","True","True","False"],
"Label":["True","True","True","False","True","True","True"]}
data = pd.DataFrame(data)
还有一个小玩具配置文件
config = [{"colname": "Accept","KeepValue":"True","RemoveTrues":"True"},
{"colname":"Transaction","KeepValue":"False","RemoveTrues":"False"}]
我想遍历数据集并应用这些过滤器。在我应用了第一个过滤器后, 我想对过滤后的数据应用以下过滤器等等。
我运行以下代码,它似乎第一次对数据应用过滤器,然后对原始数据应用第二个过滤器,而不是过滤后的数据。
for i in range(len(config)):
filtering = config[i]
if filtering["RemoveTrues"] == "True":
col = filtering["colname"]
test = data[data[col] == filtering["KeepValue"]]
print(test)
else:
col = filtering["colname"]
test = data[(data[col]== filtering["KeepValue"]) | data["Label"]]
print(test)
如何对数据应用第一个过滤器,然后对过滤后的数据应用第二个过滤器,依此类推?我需要使用循环,因为我必须从配置文件中获取过滤器。
【问题讨论】:
标签: python pandas dataframe if-statement