当前位置:   article > 正文

pandas excel表格操作_pandas操作excel

pandas操作excel


一、pandas读取excel

1、常用参数解析

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

1.1 io

待读取数据的文件

1.2. sheet_name

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

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

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

运行结果:
在这里插入图片描述
读取‘动态权益.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
  • 2
  • 3
  • 4

运行结果和上次一样

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())
  • 1
  • 2
  • 3
  • 4
  • 5

运行结果:
未传入name参数:
在这里插入图片描述
传入name参数后:
在这里插入图片描述

1.5. index_col

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

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

运行结果:
index_col=None
在这里插入图片描述index_col=0在这里插入图片描述

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())
  • 1
  • 2

运行结果:
在这里插入图片描述

二、pandas保存excel

1、常用参数解析

DataFrame.to_excel(excel_writer, sheet_name='Sheet1', header=True, index=True)
  • 1
  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)
  • 1

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号