Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档

简介: 这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。

1. 获取excel文档中的每一个数据并保存为数组

在这里插入图片描述

import openpyxl
import pandas as pd
import numpy as np

def Read_Excel(Excelname,sheet):
    '''
    作用:读取excel表格
    load_workbook 模块读取 excel 文件中对应的"修改"表中的数据,封装为列表并返回
    '''
    excel = openpyxl.load_workbook(filename=Excelname)
    # 获取sheet对应的excel数据 分别有两个一个是data,一个是Sheet1
    reult=excel[sheet]
    return reult
def Deal_data(reult):
    # 最小行 最大行 最小列 最大列
    print(reult.min_row, reult.max_row, reult.min_column, reult.max_column)

    Julei_a1=(70.72450+58.41271+79.55004+80.25528+90.63146)/5
    Julei_a3=(77.85307+67.64918+78.36915+53.75346+89.09208)/5
    Julei_a5=(59.73232+74.38533+85.66948+85.93039+74.38057)/5
    print(Julei_a5,Julei_a3,Julei_a1)

    store=[]
    for i in range(reult.min_row+1,reult.max_row+1):
        Customer = get_Value(reult,'A'+str(i)) 
        Brand_type = get_Value(reult,'B'+str(i)) 
        a1 = get_Value(reult,'C'+str(i)) 
        a1=(Julei_a1 if int(a1)>100 else a1)
        a2 = get_Value(reult,'D'+str(i)) 
        a3 = get_Value(reult,'E'+str(i)) 
        a3=(Julei_a3 if int(a3)>100 else a3)
        a4 = get_Value(reult,'F'+str(i))
        a5 = get_Value(reult,'G'+str(i))
        a5=(Julei_a5 if int(a5)>100 else a5) 
        a6 = get_Value(reult,'H'+str(i)) 
        a7 = get_Value(reult,'I'+str(i)) 
        a8 = get_Value(reult,'J'+str(i)) 
        # print(a1)
        if int(a1)<0 or int(a2)<0 or int(a3)<0 or int(a4)<0 or int(a5)<0 or int(a6)<0 or int(a7)<0 or int(a8)<0 : # 判断是否有负数
            print('a1-a8存在负数')
        if int(a1)>100 or int(a2)>100 or int(a3)>100 or int(a4)>100 or int(a5)>100 or int(a6)>100 or int(a7)>100 or int(a8)>100 : # 判断是否有大于100的数
            print('a1-a8存在大于100的数 \n')
        B1 = get_Value(reult,'k'+str(i))
        B2 = get_Value(reult,'L'+str(i))
        B3 = get_Value(reult,'M'+str(i)) 
        B4 = get_Value(reult,'N'+str(i)) 
        B5 = get_Value(reult,'O'+str(i)) 
        B6 = get_Value(reult,'P'+str(i)) 
        B7 = get_Value(reult,'Q'+str(i)) 
        B7 = (0 if B7=='#NULL!' else B7)
        if B7=='#NULL!':
            print('B7 存在 #NULL 该值为:{}\n'.format(B7))
        B8 = get_Value(reult,'R'+str(i)) 
        B9 = get_Value(reult,'S'+str(i)) 
        B10 = get_Value(reult,'T'+str(i))
        B11 = get_Value(reult,'U'+str(i)) 
        B12 = get_Value(reult,'V'+str(i)) 
        B13 = get_Value(reult,'W'+str(i))
        B14 = get_Value(reult,'X'+str(i)) 
        B15 = get_Value(reult,'Y'+str(i))
        B16 = get_Value(reult,'Z'+str(i)) 
        B17 = get_Value(reult,'AA'+str(i)) 
        Purchase_think = get_Value(reult,'AB'+str(i)) 
        print(Customer,Brand_type,a1,a2,a3,a4,a5,a6,a7,a8,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,Purchase_think)
        store.append([Customer,Brand_type,a1,a2,a3,a4,a5,a6,a7,a8,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,Purchase_think])
    return store

def get_Value(wb, tag):
    '''
    输入:获取相应单元格的数据
    wb为表格对象
    tag为单元格标签
    输出:对应单元格的数据
    '''
    return wb[tag].value

if __name__ == '__main__':
    # excel_path='F:\epycharm\HSB_match\excel_file\Whole_data.xlsx'
    new_Excel_path=r'F:\epycharm\HSB_match\excel_file\predict_data.xlsx'
    result_data = Read_Excel(new_Excel_path, 'Sheet1')  # Sheet1 data
    store=Deal_data(result_data) # 将每一行的数据保存为数组

2. txt

        """保存为txt"""
        f = open('F:\epycharm\HSB_match\excel_file\After_Deal_txt.txt','a')
        f.write(str(Customer)+' '+str(Brand_type)+
                ' '+str(a1)+' '+ str(a2)+' '+str(a3)+' '+str(a4)+' '+str(a5)+' '+str(a6)+' '+str(a7)+' '+str(a8)+
                ' '+str(B1)+' '+str(B2)+' '+str(B3)+' '+str(B4)+' '+str(B5)+' '+str(B6)+' '+str(B7)+' '+str(B8)+' '+str(B9)+' '+str(B10)+
                ' '+str(B11)+' '+str(B12)+' '+str(B13)+' '+str(B14)+' '+str(B15)+' '+str(B16)+' '+str(B17)+
                ' '+str(Purchase_think))
        f.write('\n')

3. xlsx

def savenpyasexcel(ndarray,output):
    #ndarray是数组,output是保存的文件位置
    data_df = pd.DataFrame(ndarray)  # 关键1,将ndarray格式转换为DataFrame
    rows,cols = ndarray.shape
    print(rows,cols)
    # 更改表的索引
    data_index = []
    for i in range(rows):
        data_index.append(i)
    data_df.index = data_index
    # 更改表的索引
    data_indexs = []
    for i in range(cols):
        data_indexs.append(i)
    data_df.index = data_index
    data_df.columns = data_indexs

    # 将文件写入excel表格中
    writer = pd.ExcelWriter(output)
    data_df.to_excel(writer, 'page_1',
                     float_format='%.4f')  # 关键3,float_format 控制精度,将data_df写到hhh表格的第一页中。若多个文件,可以在page_2中写入
    writer.save()  # 关键4
    return 1
"""保存为excel的xlsx"""
savenpyasexcel(np.array(store),new_Excel_path) # 保存为excel

4. csv

np.savetxt("deal_data.csv", np.array(store), delimiter=",")
目录
相关文章
|
28天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
597 1
|
21天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
26天前
|
人工智能 Java Linux
Python高效实现Excel转PDF:无Office依赖的轻量化方案
本文介绍无Office依赖的Python方案,利用Spire.XLS、python-office、Aspose.Cells等库实现Excel与PDF高效互转。支持跨平台部署、批量处理、格式精准控制,适用于服务器环境及自动化办公场景,提升转换效率与系统稳定性。
191 7
|
22天前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
262 0
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
330 0
|
12月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
255 2
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
250 2
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
163 1
|
12月前
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
12月前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集

热门文章

最新文章

推荐镜像

更多