当前位置:首页python > 正文

python筛选出csv满足某条件的行

作者:野牛程序员:2023-07-19 09:06:51python阅读 3243

要使用Python筛选满足某个条件的CSV行,可以使用csv模块或pandas库。下面展示两种方法。

使用csv模块的示例代码如下所示:

import csv

def filter_csv(filename, condition):
    with open(filename, 'r', newline='') as csvfile:
        reader = csv.reader(csvfile)
        header = next(reader)  # 读取标题行

        filtered_rows = []
        for row in reader:
            # 根据条件筛选行
            if condition(row):
                filtered_rows.append(row)

    return filtered_rows

需要提供一个CSV文件的文件名和一个条件函数。条件函数接收每一行的值作为输入,然后返回一个布尔值,表示该行是否满足条件。

下面是一个使用filter_csv函数的示例:

# 示例条件函数:筛选第二列的值大于10的行
def condition(row):
    value = int(row[1])  # 假设第二列是整数类型
    return value > 10

# 调用filter_csv函数
filename = 'data.csv'  # 替换为你的CSV文件名
filtered_rows = filter_csv(filename, condition)

# 打印满足条件的行
for row in filtered_rows:
    print(row)

使用pandas库的示例代码如下所示:

import pandas as pd

def filter_csv(filename, condition):
    df = pd.read_csv(filename)  # 读取CSV文件为DataFrame

    # 使用条件函数筛选行
    filtered_df = df[condition(df)]

    return filtered_df.values.tolist()  # 将DataFrame转换为列表

# 示例条件函数:筛选第二列的值大于10的行
def condition(df):
    return df['Column2'] > 10  # 替换'Column2'为实际的列名

# 调用filter_csv函数
filename = 'data.csv'  # 替换为你的CSV文件名
filtered_rows = filter_csv(filename, condition)

# 打印满足条件的行
for row in filtered_rows:
    print(row)

需要替换代码中的filename和条件函数,以适应你的CSV文件和筛选条件。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击