pandas excel表格操作

pandas读写excel

一、pandas读取excel

1、常用参数解析

pandas.read_excel(io,sheet_name = 0,header = 0,names = None,index_col = None,...)

1.1 io

待读取数据的文件

1.2. sheet_name

这个参数是指定读取该excel中具体哪个表的数据,默认为0,即为第一个表。如果传入1,则为第2个表;可指定传入表名,如”Sheet1″;也可传入多个表,如[0,’Sheet3′],传入第一个表和名为’Sheet3’的表。

读取’动态权益.xlsx’文件,默认为读取第一个表:

df = pd.read_excel('动态权益.xlsx')
print(df.head())

运行结果:

pandas excel表格操作
读取’动态权益.xlsx’文件,加入参数sheet_name,将’动态权益.xlsx’第一个表格默认名字’sheet’
df = pd.read_excel('动态权益.xlsx', sheet_name=0)
'效果同上'
df = pd.read_excel('动态权益.xlsx', sheet_name='sheet')
print(df.head())

运行结果和上次一样

1.3. header

指定作为列名的行,默认0,即取第一行的值为列名。数据为列名行以下的数据;若数据不含列名,则设定 header = None。

1.4. names

默认为None,要使用的列名列表,如不包含标题行,应显示传递header=None

令header=None,表格的第一列也将作为数据,增加表头序列[0,1,2…];name参数可以传入自定义的表头。

df = pd.read_excel('动态权益.xlsx', sheet_name=0, header=None)
print(df.head())
name_list= [x for x in range(48, 0, -1)]
df = pd.read_excel('动态权益.xlsx', sheet_name=0, header=None, name=name_list)
print(df.head())

运行结果:
未传入name参数:

pandas excel表格操作
传入name参数后:
pandas excel表格操作

1.5. index_col

指定某一列作为,为索引列

df = pd.read_excel('动态权益.xlsx', sheet_name=0, index_col=0)
print(df.head())

运行结果:
index_col=None

pandas excel表格操作

1.6. usecols

读取固定的列,usecols=’A:C, F’,读取A到C,和F列:

df = pd.read_excel('动态权益.xlsx', sheet_name=0, usecols='A:C, F')
print(df.head())

运行结果:

pandas excel表格操作

二、pandas保存excel

1、常用参数解析

DataFrame.to_excel(excel_writer, sheet_name='Sheet1', header=True, index=True)
  1. excel_writer : 字符串或ExcelWriter 对象文件路径或现有的ExcelWrite
  2. sheet_name :字符串,默认”Sheet1″ 将包含DataFrame的表的名称。
  3. header : 布尔或字符串列表,默认为Ture。 是否保存数据头
  4. index:bool。是否保存索引,默认为True。
pf.to_excel('动态权益相关性.xlsx', data_corr, head=True, index=True)

2、写入一个表格的多个sheet,会覆盖之前表格

writer.save()之前都可以写入’sheet’

import pandas as pd
def save_excel(root_dir, data, head=None, index=None):
    pf = pd.DataFrame(data)
    writer = pd.ExcelWriter(root_dir, engine='xlsxwriter')
    pf.to_excel(writer, header=head, index=index)
    writer.save()

3、写入一个表格的多个sheet,不覆盖之前表格

参考别人程序,pd.ExcelWriter(root_dir, engine=’openpyxl’) 不加mode=’r+’会报错’zipfile.BadZipFile: File is not a zip file’,加入读写模式该问题解决。

import pandas as pd
def save_excel(root_dir, data, sheet, index=None):
    excel_writer = pd.ExcelWriter(root_dir, engine='openpyxl', mode='r+')
    book = openpyxl.load_workbook(root_dir)
    excel_writer.book = book
    data.to_excel(excel_writer=excel_writer, sheet_name=sheet, index=index)
    excel_writer.close()

Original: https://blog.csdn.net/xu624735206/article/details/119633561
Author: 大虾飞哥哥
Title: pandas excel表格操作

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/755581/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球