用openpyxl模块处理excel表格、用pandas处理.csv表格、用xlrd处理.xls文件

1. 用openpyxl模块处理excel表格

安装openpyxl模块

pip3 install --user openpyxl

对excel的读取操作

from openpyxl import *   #导入openpyxl模块
wb=load_workbook('表格名.xlsx')   #读取excel表格
sheet=wb[wb.sheetnames[0]]     #读取excel表格中第一张表
# 遍历B列
for i in range(1, sheet.max_row+1):
    print(sheet["B"+str(i)].value)
#按列打印B列、C列和D列,column是自己定义的
for column in sheet["B:D"]:
	for cell in column:
		print(cell.value)
#按行打印3行和4行,row是自己定义的
for row in sheet["3:4"]:
	for cell in row:
		print(cell.value)
#取出表格中3、4行的2到5列的元素,构成矩阵x
for row in sheet["3:4"]:   #此时的row为元组
	a=[]
	for column in row[2:5]:  #对元组操作
		a.append(column.value)
	x.append(a)

2.用pandas处理.csv表格

读取

import pandas as pd
import numpy as np

data = pd.read_csv("文件名.csv")  # 将train.csv文件的内容赋给data
 # 将data的内容放到一个矩阵里面,之后只要对这个矩阵进行操作即可,这里会自动把标题行去掉
data_array = np.array(data) 
row0 = data_array[0]  # 取第零行赋给row0
row0_2 = data_array[0:2] # 取第0行和第1行赋给row0_2
column0 = data_array[:, 0]  # 取第0列
column0_2 = data_array[:, 0:2]  # 取第0列和第1列赋给column0_2
column0_2_3 = data_array[:, [0, 2, 3]]  # 取第0、2、3列赋值给column0_2_3

写入

# 创建一个可写的.csv文件
f = open('submission.csv', 'w', encoding='utf-8')
csv_writer = csv.writer(f)
# 往这个.csv文件中按行写入"sid", "label"
csv_writer.writerow(["sid", "label"])
for i in range(5):
    csv_writer.writerow([i, 2*i])

结果:

sid,label
0,0
1,2
2,4
3,6
4,8

补充:
上面所述是在程序与数据文件在一个文件夹下面的情况,此时读取数据的时候可以直接用:

data = pd.read_csv("文件名.csv")  # 将train.csv文件的内容赋给data

如果程序和文件不在一个地方就需要写一下路径才能使用,路径可以通过找到文件然后右键点击属性就可以看到路径了。
例如:

value_df = pd.read_csv('/home/ubuntu/PycharmProjects/file_name.csv'

3. 用xlrd处理.xls文件

导入包

import xlrd

读取

# 调用open_workbook()方法打开一个.xls文件
file_xls = xlrd.open_workbook('file_path/file_name.xls')
# 调用sheet_by_name()方法,读取文件的sheet页
st = file_xls .sheet_by_name('sheet_name')
# 调用sheet_names()方法获取.xls文件中的所有sheet页
all_sheet = file_xls .sheet_names()
# 调用sheets()方法加序号,获取第0个sheet页对象
ta = file_xls .sheets()[0]
# 获取ta中数据的行数
rw = ta.nrows
# 在cell()中传入两个值,一个行一个列,然后value获取对应单元格的值
val = ta.cell(1, 0).value  # 获取第一行第零列的值
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

comli_cn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值