#20181115#筛选特定的行#在基本Python中:#类似于之前处理CSV文件,无非是改变了读写文件的函数,过程都是去每一行的值,筛选出符合条件的行#保存下来,然后写入Excel文件#下面给出使用pandas库来筛选#!/usr/bin/env python3
importpandas as pd
input_file= 'D:\wangm\Documents\learning\code\python\data_row.xlsx'output_file= 'D:\wangm\Documents\learning\code\python\data_out_pd.xlsx'data_frame= pd.read_excel(input_file, 'supplier_data', index_col=None)#筛选出Cost值大于500的行,将标题行和这些行作为一个新的‘数据框’对象#下面这条用于筛选的语句,通过列名作为索引去除Cost的值,并将其转换为float在进行比较,比较结果为真的行留了下来#缺陷:将Cost的值的 $ 的符号丢掉了#data_frame_value_meets_condition = data_frame[data_frame['Cost'].astype(float) > 500.0]
writer =pd.ExcelWriter(output_file)#data_frame_value_meets_condition.to_excel(writer, sheet_name='supplier_data', index=False)#writer.save()
#还可以筛选出某一列中的值属于某个特定集合的行
important_dates = ['1/1/2018', '3/1/2018']
data_frame_value_in_set= data_frame[data_frame['Date'].isin(important_dates)]
data_frame_value_in_set.to_excel(writer, sheet_name='supplier_data', index=False)
writer.save()#此处写入后也将Cost的值的 $ 的符号丢掉了,起初我认为是因为被转换为float时的原因,然而此处却发现不是,那到底是为什么?
#类似于处理CSV文件,pandas在处理Excel文件时,也有类似于使用RE筛选的函数
#此处就产生一个疑问,pandas读取CSV文件、Excel文件后得到的对象为何如此相似?希望在后面具体了解pandas库时得到答案