快速数据筛选
问题场景
当需要对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,不需要额外做字段对应,高效而且避免对应出错。