Python数据分析基础-pandas模块之Excel

前情提要:
与Python的csv模块不同,Python中没有处理Excel文件(就是带有.xls和.xlsx扩展名的文件)的标准模块。要完成本章中的示例,你需要xlrd和xlwt扩展包。xlrd和xlwt扩展包使Python可以在任何操作系统上处理Excel文件,而且对Excel日期型数据的支持非常好。

3.2 处理单个工作表

sales_2013.xlsx文件其中工作表如图所示:
在这里插入图片描述

3.2.1 读写Excel文件

import pandas as pd
import sys
input_file=sys.argv[1]
output_file=sys.argv[2]
#read_excel读取excel文件
data_frame=pd.read_excel(input_file,sheet_name='january_2013')
#ExcelWriter写入excel文件
writer=pd.ExcelWriter(output_file)
data_frame.to_excel(writer,sheet_name='jan_13_output',index=False)
writer.save()

3.2.2 筛选特定行

1.行中的值满足某个条件
需求:
筛选出Sale Amount大于$1400.00的行

import pandas as pd
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

data_frame = pd.read_excel(input_file, 'january_2013', index_col=None)
data_frame_value_meets_condition = \
	data_frame[data_frame['Sale Amount'].astype(float) > 1400.0]

writer = pd.ExcelWriter(output_file)
data_frame_value_meets_condition.to_excel(writer, sheet_name='jan_13_output', index=False)
writer.save()

如果你需要设定多个条件,那么可以将这些条件放在圆括号中,根据需要的逻辑顺序用“&”或“|”连接起来。
2.行中的值属于某个集合
需求:
筛选出购买日期属于一个特定集合(例如:日期01/24/201301/31/2013的集合)的行
import pandas as pd
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

data_frame = pd.read_excel(input_file, 'january_2013', index_col=None)

important_dates = ['01/24/2013','01/31/2013']
#列表中嵌套列表是因为isin()函数判断是否包含所需列,返回布尔值,再使用data_frame[]选取为True的列输出
data_frame_value_in_set = data_frame[data_frame['Purchase Date'].isin(important_dates)]

writer = pd.ExcelWriter(output_file)
data_frame_value_in_set.to_excel(writer, sheet_name='jan_13_output', index=False)
writer.save()
3.行中的值匹配于特定模式
需求:
筛选出客户姓名包含一个特定模式(例如:以大写字母J开头)的行

在这个示例中,你想筛选出客户姓名以大写字母J开头的那些行。
pandas提供了若干字符串和正则表达式函数,包括startswith、endswith、match和search等,
你可以使用这些函数在文本中识别子字符串和模式。
import pandas as pd
import sys

input_file = sys.argv[1]
output_file = sys.argv[2]

data_frame = pd.read_excel(input_file
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值