python 读取xlsx,写入xls

# -*- coding: utf-8 -*-
import xlrd
import xlwt
import os
import json
import sys
#import codecs

# 读取xlsx,生成query列表[[],..,[]]
def read_xlsx(xlsx_input_file):
  xlsx_open_file = xlrd.open_workbook(xlsx_input_file)
  sheet_names = xlsx_open_file.sheet_names()
  print(sheet_names) # ['1']
  xlsx_querys = []
  sheetnum = 0
  xlsx_table = xlsx_open_file.sheet_by_index(sheetnum)
  count_xlsx = 0
  for xlsx_row in xlsx_table.get_rows():
      query_value = xlsx_row[0].value.strip()
      xlsx_querys.append([query_value])
      count_xlsx += 1 
      print(query_value)
  print(xlsx_querys)
  # [['qqq'], ['www'], 
  # ['eee'], ['rrr'], ['ttt']]
  print('count_xlsx=', count_xlsx,'  len(xlsx_querys)=' ,len(xlsx_querys))
  return xlsx_querys

# 将[[query, True],..,[query, False]]写入xls
def write2xls(out_diffs, xls_output_file):
  not_exit_que_wb = xlwt.Workbook(encoding = 'ascii') #open a excel
  not_exit_que_ws1 = not_exit_que_wb.add_sheet('checkdiff') #添加一个新表
  not_exit_que_row = 0 #写入的起始行
  not_exit_que_col = 0 #写入的起始列
  for item in out_diffs:
      not_exit_que_ws1.write(not_exit_que_row, not_exit_que_col , item[0])
      not_exit_que_ws1.write(not_exit_que_row, not_exit_que_col+1 , item[1])
      not_exit_que_row += 1
  not_exit_que_wb.save(xls_output_file)
  print('not_exit_que_row=', not_exit_que_row)
  return True
 

def checkingdiff_w2xls(xlsx_input_file, xls_output_file):
  xlsx_querys = read_xlsx(xlsx_input_file)
  # 构造out_diffs
  for i in range(len(xlsx_querys)):
    xlsx_querys[i].extend(['True'])
  print(xlsx_querys) # [['qqq', 'True'], ['www', 'True'],
  # ['eee', 'True'], ['rrr', 'True'], ['ttt', 'True']]
  write2xls(xlsx_querys, xls_output_file)
  return True

if __name__=="__main__":
  # query = sys.argv[1]
  # checkflag = checkingdiff(query)
  # print("query={} diff={}".format(query, checkflag))
  query_xlsx = sys.argv[1]
  xls_output_file = sys.argv[2]
  checkingdiff_w2xls(query_xlsx, xls_output_file)

可能有用:https://blog.youkuaiyun.com/qq_45779334/article/details/112172895
环境准备
需要下载xlrd==1.2.0版本,因为目前xlrd更新到了2.0.1版本,只支持.xls文件。
所以如果需要读取.xlsx文件,需要安装旧版本。

#如果之前安装过,需要卸载原先版本
pip uninstall xlrd
#下载1.2.0版本
pip install xlrd==1.2.0

<think>首先,用户的问题是:“我想查找使用Python读取Excel文件并将数据写入Pandas的法 请问Python读取Excel文件数据写入Pandas的法” 我需要参考提供的站内引用: - 引用[1]:讨论使用pandas和openpyxl读写Excel文件,包括安装库和简单操作。 - 引用[2]:涉及pandas读取Excel文件的法,如read_excel函数。 - 引用[3]:关于读取Excel文件数据并写入MySQL数据库,但提到了一些数据类型。 用户明确想了解如何读取Excel文件并将数据写入Pandas。Pandas是一个Python库,所以“写入Pandas”可能意味着将数据加载到Pandas DataFrame中。Pandas不是写入的目标;它是数据处理工具。用户可能想说“读取Excel文件数据到Pandas DataFrame”。 在引用中,[1]和[2]直接相关:引用[1]提到用pandas读写Excel文件,引用[2]描述了pandas.read_excel函数。 系统级指令要求: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾添加引用标识。 回答结构需要清晰,帮助用户逐步解决问题。尽量保证真实可靠。 用户的问题是关于Python读取Excel文件到Pandas DataFrame。核心步骤是用pandas的read_excel函数。 从引用: - 引用[1]中提到使用pandas进行Excel读写。 - 引用[2]详细说明了pandas.read_excel的参数。 - 引用[3]是关于写入数据库的,不太相关。 所以,我应该基于引用[1]和[2]来回答。 步骤: 1. 安装所需库:pandas和openpyxl(或xlrd,但openpyxl支持.xlsx)。 2. 导pandas。 3. 使用pandas.read_excel函数读取Excel文件到DataFrame。 4. 然后,用户提到“将数据写入Pandas”,但Pandas是读取的目标;或许用户误解了,应该说“加载到Pandas”。我将解释读取过程。 回答结构: - 简要介绍。 - 步骤1:安装库。 - 步骤2:导库。 - 步骤3:读取Excel文件。 - 示例代码。 - 添加引用标识。 最后,生成相关问题。 使用中文回答。 现在,构建回答。 介绍:用户想学习如何用Python读取Excel文件数据到Pandas DataFrame。 参考引用: - 引用[1]提到安装pandas和openpyxl,并封装在excel_example.py中。 - 引用[2]给出pandas.read_excel的语法。 所以,在回答中,当提到这些点时,添加引用标识,如[^1]或[^2]。 例如: “首先,需要安装pandas和openpyxl库[^1]。” “然后,使用pandas.read_excel函数读取文件[^2]。” 示例代码可以基于引用[1]。 生成相关问题:例如,关于参数定制、处理大型文件等。 系统指令说“生成相关问题”,在末尾添加。 现在,LaTeX面:用户问题中没有数学表达式,所以我可能不需要插数学公式。但指令说“所有行内数学表达式...必须使用$...$”,如果没有,就不需要插假数学。保持自然。 如果涉及数字或简单变量,如文件路径,不需要LaTeX。 回答结构: 1. 解释法。 2. 提供步骤。 3. 给出代码示例。 4. 引用标识。 5. 相关问题。 </think>### Python读取Excel文件数据到Pandas DataFrame的法 以下是使用Python读取Excel文件并将数据加载到Pandas DataFrame的完整步骤。Pandas是一个强大的数据处理库,其内置函数`read_excel`可以高效地读取Excel文件中的数据。本文将基于可靠的Python实践,逐步指导您完成操作。整个过程包括安装所需库、导模块、读取文件和数据处理。参考提供的引用内容,我将重点使用pandas库实现核心功能[^1][^2]。 #### 步骤1: 安装所需库 在使用pandas读取Excel文件前,需要安装必要的库: - **pandas**:用于数据读取和处理。 - **openpyxl** 或 **xlrd**:作为Excel文件的读写引擎(openpyxl支持.xlsx格式,xlrd支持旧版.xls格式)。 您可以使用pip命令安装这些库: ```bash pip install pandas openpyxl ``` 这一步在引用[1]中强调为准备工作[^1]。 #### 步骤2: 导pandas库 在Python脚本中,首先导pandas模块: ```python import pandas as pd ``` #### 步骤3: 读取Excel文件到Pandas DataFrame 使用`pd.read_excel()`函数读取Excel文件。该函数支持多种参数来定制读取过程,例如指定工作表、表头行、列名等[^2]。以下是基本语法: ```python # 读取Excel文件到DataFrame df = pd.read_excel('文件路径.xlsx', sheet_name='工作表名', header=0) ``` - **'文件路径.xlsx'**:替换为您的Excel文件路径(例如:'data.xlsx')。 - **sheet_name**:指定工作表名称或索引(默认是第一个工作表)。 - **header**:指定表头所在的行索引(通常为0,表示第一行)。 更多参数如`usecols`(选择特定列)或`dtype`(指定数据类型)可根据需要添加以优化加载[^2]。 #### 步骤4: 验证和处理数据 读取后,数据存储在DataFrame中,您可以使用pandas函数进行验证和处理: ```python # 查看数据前5行 print(df.head()) # 获取数据基本信息 print(df.info()) # 保存处理后的数据(如果需要导出到新文件) df.to_csv('output.csv', index=False) # 导出为CSV文件 ``` #### 完整示例代码 以下是一个完整的Python脚本示例,演示读取Excel文件并加载到DataFrame: ```python # 导pandas库 import pandas as pd # 读取Excel文件(假设文件名为'example.xlsx',工作表名为'Sheet1') file_path = 'example.xlsx' df = pd.read_excel(file_path, sheet_name='Sheet1', header=0) # 打印数据摘要 print("数据摘要:") print(df.head()) # 打印数据统计信息(可选) print("\n统计信息:") print(df.describe()) ``` 在这个示例中: - 文件路径和工作表名需要根据您的实际文件调整。 - 如果Excel文件包含复杂格式或大量数据,openpyxl引擎会自动处理[^1]。 - 参考引用[2],您可以通过参数如`usecols='A:C'`来只读取特定列,提升效率[^2]。 #### 注意事项 - **数据类型处理**:Excel中的数据类型可能不统一,使用`dtype`参数强制转换(例如:`dtype={'列名': str}`)以避免错误[^2]。 - **大型文件优化**:对于海量数据,考虑使用`chunksize`参数分块读取以减少内存占用。 - **错误处理**:添加异常捕获(如FileNotFoundError)确保脚本鲁棒性: ```python try: df = pd.read_excel(file_path, sheet_name='Sheet1') except FileNotFoundError: print("文件未找到,请检查路径。") ``` 此法基于引用[1]和[2]的最佳实践,确保数据准确加载到Pandas DataFrame中[^1][^2]。如果您需要写入其他格式(如CSV或数据库),可以使用pandas的`to_csv`或`to_sql`函数扩展功能(引用[3]展示了类似的数据写入场景)[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值