A-A+

python excel 全总结 pandas 常用的10个函数

2021年05月16日 00:04 汪洋大海 暂无评论 阅读 83 views 次

首先我们用pandas读取数据:

import pandas as pd
data=pd.read_csv('成绩表.csv',encoding='gbk')
data

python 操作excel pandas实现表格最常用的10个函数

一、6个基础函数

1.求和函数--sum()

pandas计算每名同学的总分:

data['总分']=data.sum(axis=1) #axis=1代表对行进行求和
data

python 操作excel pandas实现表格最常用的10个函数

求语文总分:

data.sum(axis=0,numeric_only=True) #axis=0代表对列进行求和,numeric_only=True表示只对数字求和
语文     689.0
数学     727.0
英语     712.0
总分    2128.0
dtype: float64

2.最小值函数--min()

pandas计算总分最低分:

data['总分'].min()
197.0

3.最大值函数--max()

pandas计算总分最高分:

data['总分'].max()
275.0

4.平均值函数--mean()

pandas计算英语成绩平均分:

data['英语'].mean()
79.11111111111111

5.计数函数--count()

pandas统计共有多少同学:

data['姓名'].count()
9

6.条件函数--IF()

将总分大于270分的判为优秀,小于270分判为良好:

data['等级']=data.总分.apply(lambda x:'优秀' if x >= 270 else '良好')
data

python 操作excel pandas实现表格最常用的10个函数

二、4个进阶函数

7.提取文本中的数字--MIDB()函数

在excel中实现如下图:

python 操作excel pandas实现表格最常用的10个函数

我们用pandas也可轻松实现:

data['考生num']=data['考生号'].str.extract('(\d{4})')
data

python 操作excel pandas实现表格最常用的10个函数

 

8.计算每名学生的年龄--DATEDIF()函数

excel用实现如下图:

python 操作excel pandas实现表格最常用的10个函数

pandas稍微复杂一些:

import datetime as dt
now_year =dt.datetime.today().year #当前的年份
data['出生年月']=pd.to_datetime(data['出生年月'])
data['年龄']=now_year-data.出生年月.dt.year
data

python 操作excel pandas实现表格最常用的10个函数

9.条件统计函数--COUNTIF()函数

excel实现如下图:

python 操作excel pandas实现表格最常用的10个函数

pandas实现代码如下:

data.apply(lambda x : sum(data['性别']=='女'),axis =0)
考生号      3
姓名       3
性别       3
出生年月     3
语文       3
数学       3
英语       3
总分       3
等级       3
考生num    3
年龄       3
dtype: int64

10.vlookup函数

花名册表格如下:

data1 = pd.read_csv('花名册.csv',encoding='gbk')
data1
考生号 姓名 性别 出生年月
0 sccu1001 马伟良 2001/12/1
2 sccu1003 牛京田 2001/5/2
3 sccu1004 王建国 2002/4/14
4 sccu1005 宁丁胜 1999/2/24
5 sccu1006 刘华 2000/1/28
6 sccu1007 孙苛示 2001/7/16
7 sccu1008 安也卫 2000/8/30
8 sccu1009 成功 2000/4/9

成绩单表格如下:

data2 = pd.read_csv('成绩单.csv',encoding='gbk')
data2
考生号 语文 数学 英语
0 sccu1001 67.0 78.0 86
1 sccu1002 56.0 73.0 68
2 sccu1003 70.5 78.0 53
3 sccu1004 67.0 79.5 74
4 sccu1005 88.0 95.0 89
5 sccu1006 68.5 70.0 73
6 sccu1007 89.0 97.0 89
7 sccu1008 90.0 67.5 92
8 sccu1009 93.0 89.0 88

合并后的表格:

data3 = pd.merge(data1,data2[['考生号','语文','数学','英语']],how = 'left',on = '考生号')
data3

python 操作excel pandas实现表格最常用的10个函数

文章来源:https://mp.weixin.qq.com/s?src=11&timestamp=1621093614&ver=3070&signature=CRqTdYcM2fXW14nQHimVJqhz2Ur9hIS7y0p*BCdWGxWw62iDmCkvC8C*kLpxBwdiS4tu9DPzk-GdXbexsnbjeEdXOHmFoPOybkNrrPNMAVZQYnB6FJs3Emg14v3Y6dSZ&new=1

pandas是基于Numpy创建的Python包,内置了大量标准函数,能够高效地解决数据分析数据处理和分析任务,pandas支持多种文件的操作,比如Excel,csv,json,txt 文件等,读取文件之后,就可以对数据进行各种清洗、分析操作了。

首先,了解下pandas中两个主要的数据结构,一个是Series,另一个是DataFrame。

Series一种增强的一维数组,类似于列表,由索引(index)和值(values)组成。

DataFrame是一个类似表格的二维数据结构,索引包括列索引和行索引,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame的每一行和每一列都是一个Series。

pandas读取excel

pandas读取文件之后,将内容存储为DataFrame,然后就可以调用内置的各种函数进行分析处理。

pandas对xlrd等模块进行了封装,可以很方便的处理excel文件,支持xls和xlsx等格式,需要提前安装模块pip install xlrd

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 做自然排序分配给各条记录。
  • 通过names=['a','b','c']可以自己设置列标题

python 操作excel pandas实现表格最常用的10个函数

import pandas as pd
result = pd.read_excel('test1.xlsx')
print(result)

python 操作excel pandas实现表格最常用的10个函数

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

python 操作excel pandas实现表格最常用的10个函数

#  默认读取第一个sheet,读取第2个sheet如下
result = pd.read_excel('test1.xlsx',sheet_name=1)
print(result)

python 操作excel pandas实现表格最常用的10个函数

result = pd.read_excel('test1.xlsx',names=['序号','姓名','年龄','城市'])
print(result)

python 操作excel pandas实现表格最常用的10个函数

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

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

# 查看列索引列表
print(result.columns.values)
# ['No' 'Name' 'Age' 'Address']

# 查看行索引列表
print(result.index.values)
# [0 1 2 3]

新建excel并写入数据

import pandas as pd
result = pd.DataFrame({'序号':[1,2,3],'姓名':['张三','李四','王五']})
result.to_excel('新建.xlsx')

pandas增删改查:

读取下面的表格数据,进行学习:

import pandas as pd
df = pd.read_excel('test1.xlsx',index_col='No')
print(df)

python 操作excel pandas实现表格最常用的10个函数

增删改查的常用方法,已整理成思维导图,便于大家查阅学习:

python 操作excel pandas实现表格最常用的10个函数

「两种查询方法的介绍」

「loc」 根据行,列的标签值查询

「iloc」 通过行号索引行数据,行号从0开始,逐次加1。

「注意」 当使用显式索引(即data['a':'c'])作切片时,结果「包含」最后一个索引;而当使用隐式索引(即 data[0:2]) 作切片时,结果「不包含」最后一个索引。

loc属性,表示取值和切片都是显式索引

iloc属性,表示取值和切片都是隐式索引

Pandas 读取 csv文件的语法格式和读取excel文件是相似的,大家可以对照读取excel的方法学习。

使用pandas表格数据常用的清洗方法:

df.drop(['Name'], axis=1) # 删除列
df1.drop(labels=[1,3],axis=0)   #删除行
df.drop([0, 1]) # 删除行
df.drop_duplicates() # 删除重复值
df.fillna('missing')# 使用字符串填补
df.replace('old', 'new') # old替换成new
df.rename(columns={'old_name': 'new_name'}) # 选择性更改列名
df.columns = ['a','b','c'] # 重命名列名
df.dropna(axis = 0) # 删除有缺失的行
df.dropna(axis = 1) # 删除有缺失的列

当然了,pandas除了读取csv和excel文件之外,读写数据的方法还有很多种,感兴趣的话,大家可以根据官方文档学习。

https://pandas.pydata.org/pandas-docs/stable/

python 操作excel pandas实现表格最常用的10个函数

此部分文章来源:https://mp.weixin.qq.com/s?src=11&timestamp=1621093614&ver=3070&signature=Kt8201GrXcjt1eqX95nMKkgT0ylooZdAKNosM767WsFU2REnpMQ8fTqVza-JyPZUQQwyu6VWoqA8D-uz0qg-aNneoYiDYlQMlsDdl581HttpRLQEWmXcnpEJLHoyD5iQ&new=1

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言