python读取excel【二】,循环行与列对应数据
程序员文章站
2022-03-10 23:03:27
python 读取excel,获取有对应行,对应列的数值,将行列,对应值组成新的数据集...
1. 我们需要取到数据如下:
年龄: 19 身高: 152cm 所对应的体重信息,组成一组信息
年龄为:19 身高是 152 cm的人的标准体重是46kg
年龄为:19 身高 153cm 的人的标准体重为46kg
年龄为:61 身高 152cm 的人的标准体重为53kg
2.数据集格式如下:
3.实现代码如下:
# -*- coding:utf-8 -*-
# @Time: 2020/7/9 17:03
# @Author: 宇风-飞扬
# @File: Imp_data.py
import pymysql
import xlrd
def open_excel(file='file.xls'):
#打开excel 文件
try:
data = xlrd.open_workbook(file)
return data
except Exception as e:
print(str(e))
def excel_table_by_name(file=u'women.xlsx', colnameindex=0, by_name=u'Sheet1'): # 修改自己路径
data = open_excel(file)
table = data.sheet_by_name(by_name) # 获得表格
nRows = table.nrows # 拿到总共行数
title_list = table.row_values(0) # 标题字段
for i in range(1, nRows): # 循环行数
row_vals = table.row_values(i)
age = 0
for j, val in enumerate(row_vals): # 对每列数据进行循环
if j == 0:
age = val # 年龄
else:
print('当前年龄为:' + str(age) + ' 身高为:' + str(title_list[j]) + '标准值为:' + str(val))
print(type(age))
print(type(title_list[j]))
print(type(val))
height = title_list[j].replace("cm", "")
sql = 'INSERT into scc_body_st VALUES(NULL,%d,%d,0,%d)' % (
int(age), int(height), int(val)
)
print(sql)
conn_mysql(sql=sql)
# break
def conn_mysql(sql): # 写了个简单mysql 连接,将数据插入本地数据库
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="123456", db="TEST")
cur = conn.cursor()
cur.execute(sql)
# data = cur.fetchall()
# print(data)
conn.commit()
cur.close()
conn.close()
if __name__ == "__main__":
excel_table_by_name()
写这个代码主要是将excel数据批量插入到数据库中,形成数据字典,方便使用,主要是懒,不想手动插入数据库。
4.总结:
还有一些其他的用法 :
常用的一些操作:
# 获取总行书
nRows = table.nrows
# 获取总列数
nRows = table.ncols
#获取 n行数据
nRows = table.row_values(n)
#获取 n 列的数据
table.col_values(n)
本文地址:https://blog.csdn.net/EB_NUM/article/details/107236146