pd.DataFrame()快速筛选数据

快速数据筛选

问题场景

当需要对excel数据根据不同的条件进行筛选,可以利用pandas快速实现。例如筛选出一张表格里来自不同网站的数据,每个网站的数据不超过20条。示例如下:

实现方法

import pandas as pd

def select_data():
    raw_df = pd.read_excel('./check_data/原始数据.xlsx')
    selected_df = pd.DataFrame(columns=raw_df.columns.values) # 直接获取原DataFrame列标签
    website_dict = { }
    for ind, row in raw_df[:10].iterrows():
        website_id = row['websiteId']
        if website_id not in website_dict.keys():
            website_dict[website_id] = 1
            selected_df = selected_df.append(row) # 直接添加一条数据
        elif website_dict[website_id] < 20:
            website_dict[website_id] += 1
            selected_df = selected_df.append(row)

    selected_df.to_excel('./check_data/筛选数据.xlsx')


if __name__ == '__main__':
    select_data()

该方法不需要新建DataFrame的列索引,同时在添加数据时直接添加原Series,不需要额外做字段对应,高效而且避免对应出错。

    原文作者:Kidron_Hou
    原文地址: https://blog.csdn.net/u013293551/article/details/122232192
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞