pandas操作excel的基础知识

  • pandas有两个主要的数据结构,一个是Series,另一个是DataFrame。
  • Series一种增强的一维数组,类似于列表,由索引(index)和值(values)组成。
  • DataFrame是一个类似表格的二维数据结构,索引包括列索引和行索引,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame的每一行和每一列都是一个Series

pandas读取excel

pandas.read_excel(filename, sep, header,encoding)

#各个参数解释

"""
filename:文件路径,可以设置为绝对路径或相对路径
sep:分隔符,常用的有逗号 , 分隔、\t 分隔,默认逗号分隔,read_table默认是'\t'(也就是tab)切割数据集的
header:指定表头,即列名,默认第一行,header = None, 没有表头,全部为数据内容
encoding:文件编码方式,不设置此选项, Pandas 默认使用 UTF-8 来解码。
index_col ,指定索引对应的列为数据框的行标签,默认 Pandas 会从 0、1、2、3 做自然排序分配给各条记录。
"""
import pandas as pd

path = r"C:\Users\lenovo\Desktop\pandas实验数据.xlsx"
#读取文件信息
result = pd.read_excel(path)
print(result)

#指定第一列为行索引
result = pd.read_excel(path,index_col=0)


#  默认读取第一个sheet,读取第2个sheet如下
result = pd.read_excel(path,index_col=0,sheet_name=1)

#读取某一列名
getinput = pd.read_excel('表路径',usecols=['Loadcase']) #Loadcase列名


# 查看指定前几行,默认前5行,指定行数写小括号里
result = pd.read_excel(path)
print(result.head())

# 查看数据的(行数、列数)
print(result.shape)

# 查看列索引列表
print(result.columns.values)
#
# # 查看行索引列表
print(result.index.values)

pandas写入excel

import pandas as pd
from pandas import DataFrame

#需要注意的是,当文件打开的时候是写不进去的

#**往文件中直接写入数据**
path = r"C:\Users\lenovo\Desktop\pandas实验数据.xlsx"
result = pd.DataFrame({'序号':[1,2,3],'姓名':['张三','李四','王五']})#数据为字典格式
result.to_excel(path,index=0) #index为行名索引,默认为True



#**或者这样写,即先把数据封装在一起**
dic1 = {'标题列1': ['张三','李四'],
        '标题列2': [80, 90]}
df = pd.DataFrame(dic1) #先将数据转换为DataFrame格式
df.to_excel(path, index=0,sheet_name="a") #再将数据写入excel中,同时可定义sheet的文件名


#**当同时写入多个sheet,以解决后面将前面的sheet覆盖的问题**
dic1 = {'标题列1': ['张三','李四'],
        '标题列2': [80, 90]}

dic2 = {'标题列3': ['王五','赵六'],
        '标题列4': [100, 110]}

dic3 = {'标题列5': ['孙七','周八'],
        '标题列6': [120, 130]}

df1 = pd.DataFrame(dic1) #先将其转换为DF格式
df2 = pd.DataFrame(dic2)
df3 = pd.DataFrame(dic3)

#需要先生成一个excel文件
df1.to_excel("text.xlsx",index=1,sheet_name="a") #index :布尔,默认的Ture,写行名(索引)

writer = pd.ExcelWriter(r"text.xlsx",mode= "a",engine= "openpyxl") #实例化ExcelWriter,其实我觉得直接放一个xlwt的文件路径也是没问题的

df2.to_excel(writer,index=1,sheet_name="b")
df3.to_excel(writer,index=1,sheet_name="c")
writer.save()
writer.close()

#**覆盖一个已经存在的sheet**
wb = writer.book
print(wb.sheetnames) #查看已存在的sheet的名字
wb.remove(wb["a"]) #删除sheet a
writer = pd.ExcelWriter(r"text.xlsx",mode= "a",engine= "openpyxl") #实例化ExcelWriter

df = pd.DataFrame({"name": ["夏色祭", "白上吹雪"]})
df.to_excel(writer, index=True, sheet_name="a")
writer.save()
writer.close()

记录学习的点点滴滴