[Python进阶] Python操作Excel文件:pandas

发布时间:2024年01月08日

7.3 Python操作Excel文件:pandas

7.3.1 pandas介绍及安装

Pandas是Python中的一个开源库,用于数据分析和操作。它提供了高性能,易于使用的数据结构和数据分析工具,旨在使C语言级别的性能更容易地在Python中获得。Pandas包括许多高级数据结构,如Series,DataFrame和Panel,以及许多用于数据分析和操作的工具。
Pandas的主要特性包括:
高性能的数据结构:Pandas提供了高性能的数据结构,如Series和DataFrame,它们是专门为处理大型数据集而设计的。Series是一种一维数组,而DataFrame是一种二维表格数据结构,可以包含异构类型的数据列。
数据清洗和转换:Pandas提供了许多用于数据清洗和转换的工具,如缺失数据处理、重复值删除、数据类型转换等。
数据合并和连接:Pandas提供了许多用于数据合并和连接的工具,如数据库风格的连接和合并、层次化索引等。
数据重塑和透视:Pandas提供了许多用于数据重塑和透视的工具,如数据透视、堆叠和展开等。
数据分析和聚合:Pandas提供了许多用于数据分析和聚合的工具,如分组、汇总、排序等。
可视化:Pandas还可以与其他可视化库(如Matplotlib)集成,用于数据可视化。
总之,Pandas是Python中强大的数据处理库,提供了丰富的数据结构和数据分析工具,使得在Python中进行数据处理变得简单和高效。
安装pandas:

pip install pandas

7.3.2 pandas.read_excel()

功能:** read_excel是pandas中的一个函数,用来读取excel中的内容并转变为dataframe数据类型。 **常用参数:
io 文件名或者文件url地址
sheet_name 要读取的工作表。可以是以下几种类型:
int 第几个sheet,默认为0。
str sheet的名字。
list 可以包含int或者str的列表。最后返回以sheet名为关键字 sheet内容为值的字典。
None 全部sheet的字典(以sheet名为关键字)
header 列索引(表头),可以是以下几种类型:
None 没有表头,让系统自动指定0,1,2为表头
int 设置第n行为表头(默认为0),从第n+1行开始读取数据
int_list 比如:[0,1],将第一行和第二行作为组合表头
names 手动设置列索引表头。
str-list [‘日期’,‘时间’]
index_col 行索引。
int 第n列作为行索引,默认让系统自动指定0,1,2为行索引
usecols 使用的列,可以为以下几种类型:
None 全部的列(默认)
str 如:‘A,C’,‘A,C:E’
int-list 如:[0,2]
str-list 如:[‘日期’,‘时间’]
dtype 设置列的类型,如下:

类型说明
int8/int16/int32/int64(默认)整型
float16/float32/float64(默认)浮点型
str/string字符串
bool布尔
category分类
datetime64[ns]时间戳(纳秒)
period[Y/M/D]时间周期(年/月/日)
objectPython对象混合类型

说明:可以通过.dtypes可以查看dateframe数据的每列的数据类型。
dtype={
‘货号’:‘str’,
‘商品代码’:‘string’
}
skiprows 跳过行,可以为以下几种类型:
int 跳过前n行
int-list 跳过列表中标明的行
跳过偶数行:skiprows=lambda x: x % 2 == 0
nrows 指定需要读取前多少行,通常用于较大的数据文件中。
na_values 将某些特定的值解析成NaN
0 将0解析成NaN
‘空值’ 将’空值’解析成NaN
[‘空值’,0] 将’空值’,0解析成NaN
{‘列名’:[‘空值’,0]} 将某一列的’空值’,0解析成NaN
说明:在pandas中,用NaN(Nat a Number,float类型)表示缺失值。在excel中一些错误的公式会自动解析为NaN。
其它参数及说明可以参照:https://zhuanlan.zhihu.com/p/142972462
直接读取数据并输出

import pandas as pd
from icecream import ic

df = pd.read_excel('test.xlsx')  # 默认读取第一个表
ic(df)
df = pd.read_excel('test.xlsx', sheet_name='Sheet1')  # 指定读某张表
ic(df)
df = pd.read_excel('test.xlsx', names=['name', 'gender', 'age', 'height'])  # 自定义表头
ic(df)
df = pd.read_excel('test.xlsx', index_col=0)  # 将第一列作为索引列
ic(df)
df = pd.read_excel('test.xlsx', usecols='A:C')  # 只使用的列
ic(df)
ic(df.values.tolist())  # 将df数据类型转换成list

10:12:24|> df: 姓名 性别 年龄 身高
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: 姓名 性别 年龄 身高
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: name gender age height
0 张三 男 18 121
1 李四 女 19 130
2 王五 男 20 150
10:12:24|> df: 性别 年龄 身高
姓名
张三 男 18 121
李四 女 19 130
王五 男 20 150
10:12:24|> df: 姓名 性别 年龄
0 张三 男 18
1 李四 女 19
2 王五 男 20
10:12:24|> df.values.tolist(): [[‘张三’, ‘男’, 18], [‘李四’, ‘女’, 19], [‘王五’, ‘男’, 20]]

7.3.3 DataFrame.to_excel()

DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。
使用列表创建dataframe

import pandas as pd
from icecream import ic

data = [['Google', 10], ['Runoob', 12], ['Wiki', 13]]
df = pd.DataFrame(data, columns=['Site', 'Age'])
ic(df)

22:23:53|> df: Site Age
0 Google 10
1 Runoob 12
2 Wiki 13

使用字典创建dataframe

import pandas as pd
from icecream import ic

data = {'Site': ['Google', 'Runoob', 'Wiki'], 'Age': [10, 12, 13]}
df = pd.DataFrame(data)
ic(df)

22:25:19|> df: Site Age
0 Google 10
1 Runoob 12
2 Wiki 13

DataFrame.to_excel()功能:
将DataFrame数据写入到excel表中。
参数:
excel_writer 文件路径或excelwriter
sheet_name 工作表名,如:‘sheet’
index 是否输出index,默认输出(True)
float_format 浮点数输出格式,例如:%.2f,默认为
na_rep 缺失值输出的表示形式,默认为空。
说明:写入数据是必须保证文件未被打开,并且存在指定的工作表。

from icecream import ic
import pandas as pd

data = {'Site': ['Google', 'Runoob', 'Wiki'], 'Age': [10, 12, 13]}
df = pd.DataFrame(data)
ic(df)
df.to_excel('test.xlsx', sheet_name='Sheet1', index=None)

文章来源:https://blog.csdn.net/crleep/article/details/135448826
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。