前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用pandas处理Excel数据

利用pandas处理Excel数据

作者头像
Python编程与实战
发布2021-03-10 11:17:59
1K0
发布2021-03-10 11:17:59
举报
文章被收录于专栏:Python编程与实战

新建一个excel表格(table1.csv)用于案例讲解:

导库

代码语言:javascript
复制
import pandas as pd
import numpy as np

读取数据

代码语言:javascript
复制
df = pd.read_excel('table1.xlsx') # 相对路径
# df = pd.read_excel(r'E:\Anaconda\hc\dataScience\table1.csv') # 绝对路径

显示数据

显示数据的行与列数

代码语言:javascript
复制
df.shape

(6, 5)

显示数据格式dtpyes

代码语言:javascript
复制
df.dtypes

Name      object
Age        int64
Sex        int64
Class      int64
Score    float64
dtype: object

显示列名

代码语言:javascript
复制
df.columns

Index(['Name', 'Age', 'Sex', 'Class', 'Score'], dtype='object')

显示前数据前2行

代码语言:javascript
复制
df.head(2)

显示数据后3行

代码语言:javascript
复制
df.tail(3)

显示数据唯一值(unique函数)

代码语言:javascript
复制
df['Score'].unique()

array([ 80.,  90., 100.,  nan])

对第几行数据不读取

代码语言:javascript
复制
# 没有读取第2行
df1 = pd.read_excel('table1.csv',skiprows=[2] ) 

对缺失值进行识别

代码语言:javascript
复制
# 所有缺失值显示为True
df.isnull()

清洗数据

删除空值(dropna函数)

代码语言:javascript
复制
df2 = df.dropna(how='any')

填充空值(fillna函数)

代码语言:javascript
复制
df3 = df.fillna(value=0)

用均值对空值进行填充

代码语言:javascript
复制
df4 = df['Score'].fillna(df['Score'].mean())

0     80.0
1     90.0
2    100.0
3     90.0
4     88.0
5     80.0
Name: Score, dtype: float64

更改数据格式

代码语言:javascript
复制
df1['Score'].astype('int64')

0     80
1     90
2    100
3     90
5     80
Name: Score, dtype: int64

(注:如果存在空值,更改数据格式会报错!)

更改列名

代码语言:javascript
复制
df5 = df.rename(columns={'Score': 'score'})

对列表内的值进行替换(replace函数)

代码语言:javascript
复制
df6 = df['Name'].replace('Bob', 'bob')

0     Tom
1    Jack
2    Alan
3    Tony
4     Tim
5     bob
Name: Name, dtype: object

数据预处理

对数据进行排序

代码语言:javascript
复制
df.sort_values(by=['Score'])

(注:默认升序,且空值在后面)

数据分组

①单一条件分组

代码语言:javascript
复制
# 如果Score列的值>=85,Score列显示high,否则显示low
# group列为增加列
df['group'] = np.where(df['Score'] > 85,'high','low')

②多个条件分组

代码语言:javascript
复制
# 利用loc函数,进行多列查询
# sign为增加列
df.loc[(df['Sex'] == 1) & (df['Age']>= 19), 'sign']=1

数据提取

按标签提取(loc函数)

代码语言:javascript
复制
df.loc[0:3]

按位置进行提取(iloc函数)

①按区域提取

代码语言:javascript
复制
df.iloc[:4, :5]

②按位置提取

代码语言:javascript
复制
#[0, 2, 5] 代表指定的行,[0, 1, 5] 代表指定的列
df.iloc[[0, 2, 5],[0, 1, 5]]

按条件提取(isin与loc函数)

①用isin函数进行判断

代码语言:javascript
复制
# 判断Sex是否为1
df['Sex'].isin([1])

0     True
1     True
2     True
3    False
4    False
5     True
Name: Sex, dtype: bool

②用loc函数进行判断

代码语言:javascript
复制
# Sex为1,分数大于85
df1.loc[(df1['Sex'] == 1) & (df1['Score'] > '85'), ['Name','Age','Class']]

③先判断结果,将结果为True的提取

代码语言:javascript
复制
# 先判断Score列里是否包含80和90,然后将复合条件的数据提取出来。
df.loc[df['Score'].isin(['80','90'])]

作者:AI阿聪 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_40431584/article/details/103993722

< END >

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python编程与实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导库
  • 读取数据
  • 显示数据
  • 清洗数据
  • 数据预处理
  • 数据提取
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档