python数据处理——csv文件读取

使用场景:

  只想读取csv部分的列或有条件限制的读取数据,返回的数据是一个包含dict的列表数据方便直接处理数据。

import json
import pandas as pd

from pandas._typing import FilePathOrBuffer


def read_csv(csv_path: FilePathOrBuffer, field_list=None, query_list={}):
    """
    读取csv指定字段

    :param csv_path: csv文件路径
    :param field_list: 需要读取的csv标头
    :param query_list: 筛选条件
    :return: 一个包含dict的列表数据
    """
    df = pd.read_csv(csv_path)
    values = json.loads(df.T.to_json()).values()
    data_list = [
        {field: value[field] for field in field_list}
        if isinstance(field_list, list) else
        value for value in values]
    record_list = []
    index = 0
    if isinstance(query_list, dict):
        for query in query_list.keys():
            for data in data_list:
                if data[query] != query_list[query]:
                    record_list.append(index)
                index += 1
    for subscript in reversed(record_list):
        del data_list[subscript]
    return data_list

 

posted @ 2021-07-07 21:53  羽墨1110  阅读(286)  评论(0编辑  收藏  举报