gpt4 book ai didi

python - 如何根据配置文件(文本或CSV)中的用户输入过滤pandas数据框配置将告诉过滤器值和过滤列

转载 作者:行者123 更新时间:2023-12-01 01:11:19 29 4
gpt4 key购买 nike

我有一个从 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)

我的配置文本文件看起来像,我的数据框有一个名为

的列
Client_Product
Filter Target_Column
10170 Client_Product

我收到“类型错误”:系列对象不可调用

我正在寻找任何可以将过滤条件从配置文件传递到 Python 程序的方法

最佳答案

看起来基本没问题。您收到的错误是由于行 filter_col = row('Target_Column') ,其中使用括号 ()而不是括号[]

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

这还可以让您避免创建名为 filter 的变量,因为这会覆盖 python builtin你应该避免这种情况。

关于python - 如何根据配置文件(文本或CSV)中的用户输入过滤pandas数据框配置将告诉过滤器值和过滤列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54847240/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com