Python 如何根据配置文件(文本或CSV)中的用户输入筛选熊猫数据帧配置将告诉筛选值和筛选列

Python 如何根据配置文件(文本或CSV)中的用户输入筛选熊猫数据帧配置将告诉筛选值和筛选列,python,pandas,dataframe,filter,Python,Pandas,Dataframe,Filter,我有一个从CSV文件创建的数据框,我需要帮助根据配置文件的输入(可以是文本或CSV)对数据框进行过滤。配置文件将包含我必须筛选的列名以及我必须筛选的值或条件。到目前为止,我有以下代码 import pandas as pd import os import time import csv import datetime import sys file_loc = sys.argv[1] input_file_1 = 'mapping_config_1.txt' file_det = os

我有一个从CSV文件创建的数据框,我需要帮助根据配置文件的输入(可以是文本或CSV)对数据框进行过滤。配置文件将包含我必须筛选的列名以及我必须筛选的值或条件。到目前为止,我有以下代码

import pandas as pd
import os
import time
import csv
import datetime
import sys


file_loc = sys.argv[1]

input_file_1 = 'mapping_config_1.txt'

file_det = os.path.join(file_loc, input_file_1)

file_details = pd.read_csv(file_det, header = 0, delimiter = "\t")

df = pd.read_csv(r'C:\filter\test.txt', sep = "|")

for index, row in file_details.iterrows():

  filter_col = row('Target_Column')

  filter = row['Filter']

  df = df.loc[df['filter_col'].isin(filter)]

  df.head(1000).to_csv(os.path.join(file_loc, 'output.txt'), sep = "|", index = False)
我的配置文本文件看起来像,我的dataframe有一个名为

Client_Product
Filter  Target_Column
10170   Client_Product
我收到
“类型错误”:序列对象不可调用


我正在寻找任何一种方法,在这种方法中,我可以将过滤条件从配置文件传递到Python程序。您遇到的错误是由于行
filter\u col=row('Target\u Column')
导致的,在该行中,您使用括号
()
而不是括号
[]

其他问题:
pd.Series.isin
需要一个列表,但您只提供了一个值。 您只需将前三行替换为
df=df.loc[df[row['Target\u Column']]==row['Filter']]


这还可以避免生成名为
filter
的变量,因为这会覆盖一个变量,您应该避免这样做

@p Maschhoff感谢您的回复,这非常有效,我计划编写更多代码并添加更多过滤场景,例如值大于或等于或小于某个值。我将再次分享最终代码以供参考