欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python读取excel【二】,循环行与列对应数据

程序员文章站 2022-03-10 23:03:27
python 读取excel,获取有对应行,对应列的数值,将行列,对应值组成新的数据集...

1. 我们需要取到数据如下:

年龄: 19 身高: 152cm 所对应的体重信息,组成一组信息
年龄为:19 身高是 152 cm的人的标准体重是46kg
年龄为:19 身高 153cm 的人的标准体重为46kg

年龄为:61 身高 152cm 的人的标准体重为53kg


2.数据集格式如下:

python读取excel【二】,循环行与列对应数据

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