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()
记录学习的点点滴滴