栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas知识复习 (from和鲸)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas知识复习 (from和鲸)

目录

1.数据加载与存储

        (1)读取 Excel 文件|指定行(跳过) 

        (2)读取 Excel 文件|指定行(条件)

         (3)读取 Excel 文件|指定列(列号)

        (4)读取 Excel 文件|指定列(列名)

        (5)读取 Excel 文件|指定列(匹配)

        (6)读取 Excel 文件|指定索引

        (7)读取 Excel 文件|指定标题

       (8) 读取 Excel 文件|缺失值转换

        (9)读取 Excel 文件|缺失值标记

        (10)读取 Excel 文件|忽略缺失值

       (11) 读取 Excel 文件|指定格式

        (12)读取 Excel 文件|分块读取

        (13)读取 txt 文件|含中文

        (14)读取 HDF5 文件

        (15)从网页读取数据

        (16)保存为 CSV|指定列

        (17)保存为 CSV|取消索引

        (18)保存为 CSV|标记缺失值

2.个性化显式设置

        (1) 显示全部列

        (2)显示指定行/列

        (3)修改每列最大字符宽度

        (4) 修改小数点精度

        (5)忽略警告

        (6)修改默认绘图引擎

        (7)隐藏索引

        (8)调整精度

        (9)标记缺失值

        (10)高亮缺失值

        (11)高亮数值列最大值

        (12)高亮数值列最小值

        (13) 同时高亮最大最小值

        (14)指定格式高亮

        (15)渐变显示数值列

        (16)修改字体颜色

        (17)修改背景颜色、对齐方式、字体大小

        (18)综合(链式)设置

        (19)导出样式

        (20) 制作指定列条形图

         (21)带有条件的样式(自定义样式)

        (22)指定(自定义)格式化数据

3.数据预览与预处理

        (1)查看数据维度

        (2)随机查看5条数据

        (3)查看数据前后5行

        (4)查看数据基本信息

        (5)查看数据统计信息|数值

        (6)查看数据统计信息|离散

        (7) 查看数据统计信息|整体

        (8)计算缺失值|总计

        (9)计算缺失值|分列

        (10)查看缺失值

        (11)高亮缺失值

         (12) 删除缺失值

        (14)缺失值补全|向上填充

        (15)缺失值补全|整体均值填充

        (16)缺失值补全|上下均值填充

        (17)缺失值补全|匹配填充

        (18)查找重复值

        (19)查找重复值|指定

        (20)删除重复值

        (21)删除重复值|指定


1.数据加载与存储

        (1)读取 Excel 文件|指定行(跳过) 
# 读取当前目录下 某招聘网站数据.csv 文件并跳过前20行

data=pd.read_csv("某招聘网站数据.csv",skiprows=[i for i in range(1,21)])
data

        (2)读取 Excel 文件|指定行(条件)
# 读取当前目录下 某招聘网站数据.csv 文件中全部偶数行

data = pd.read_csv('某招聘网站数据.csv', skiprows=lambda x: (x != 0) and not x % 2)

# data = pd.read_csv('某招聘网站数据.csv', skiprows=lambda x: x % 2) 奇数行

         (3)读取 Excel 文件|指定列(列号)
# 读取当前目录下 某招聘网站数据.csv 文件的第 1、3、5 列

data = pd.read_csv("某招聘网站数据.csv",usecols = [0,2,4])

        (4)读取 Excel 文件|指定列(列名)
# 读取当前目录下 某招聘网站数据.csv 文件的 positionId、positionName、salary 列

data = pd.read_csv("某招聘网站数据.csv",usecols = ['positionId','positionName','salary'])

        (5)读取 Excel 文件|指定列(匹配)
"""
让我们来个更难一点的,还是读取 某招聘网站数据.csv 文件,但现在有一个 list 中包含多个字段

usecols = ['positionId','test','positionName', 'test1','salary']

如果 usecols 中的列名存在于 某招聘网站数据.csv 中,则读取。
"""

usecols = ['positionId', 'test', 'positionName', 'test1', 'salary']

data = pd.read_csv('某招聘网站数据.csv', usecols=lambda c: c in set(usecols))

        (6)读取 Excel 文件|指定索引
# 读取当前目录下 某招聘网站数据.csv 文件,并在读取时将 positionId 设置为索引列

data = pd.read_csv('某招聘网站数据.csv',index_col=['positionId'])

        (7)读取 Excel 文件|指定标题
#读取当前目录下 `某招聘网站数据.csv` 文件的 `positionId、positionName、salary` 列,并将标题设置为 `ID、岗位名称、薪资`

data = pd.read_csv('某招聘网站数据.csv', usecols=[0,1,17],header = 0,names=['ID','岗位名称','薪资'])

       (8) 读取 Excel 文件|缺失值转换
# 读取当前目录下 某招聘网站数据.csv 文件,并不将缺失值标记为 NA

data = pd.read_csv('某招聘网站数据.csv', keep_default_na=False)

        (9)读取 Excel 文件|缺失值标记
# 读取当前目录下 某招聘网站数据.csv 文件,并将[]标记为缺失值

data = pd.read_csv('某招聘网站数据.csv',na_values=['[]'])

        (10)读取 Excel 文件|忽略缺失值
# 读取当前目录下 某招聘网站数据.csv 文件,但不处理缺失值

data = pd.read_csv("某招聘网站数据.csv",na_filter=False)

       (11) 读取 Excel 文件|指定格式
# 读取当前目录下 某招聘网站数据.csv 文件,并将 positionId,companyId 设置为字符串格式

data = pd.read_csv("某招聘网站数据.csv", dtype={'positionId': str,'companyId':str}) 

        (12)读取 Excel 文件|分块读取
# 读取当前目录下 某招聘网站数据.csv 文件,要求返回一个可迭代对象,每次读取 10 行

data = pd.read_csv("某招聘网站数据.csv", chunksize= 10)

        (13)读取 txt 文件|含中文
data = pd.read_table("TOP250.txt",encoding='gb18030')

        (14)读取 HDF5 文件
data = pd.read_hdf("store_tl.h5", "table")

        (15)从网页读取数据
data = pd.read_html("https://olympics.com/tokyo-2020/olympic-games/zh/results/all-sports/medal-standings.htm")[0]

        (16)保存为 CSV|指定列
# 只保留positionName、salary两列

data.to_csv("out.csv",encoding = 'utf_8_sig',columns=['positionName','salary'])

        (17)保存为 CSV|取消索引
# 将第三题读取到的数据保存为 csv 格式至当前目录下(文件名任意),且取消每一行的索引

data.to_csv("out.csv",encoding = 'utf_8_sig',index = False)

        (18)保存为 CSV|标记缺失值
# 在保存的同时,将缺失值标记为'数据缺失'

data.to_csv("out.csv",encoding = 'utf_8_sig',index = False,na_rep = '数据缺失')

       

2.个性化显式设置

        (1) 显示全部列
pd.set_option('display.max_columns', None) #显示全部列
pd.set_option('display.max_rows', None) # 显示全部行

        (2)显示指定行/列
# 指定让 data 在预览时显示10列,7行

pd.set_option('display.max_columns', 10)  
pd.set_option('display.max_rows', 7)

        (3)修改每列最大字符宽度
 # 即每列最多显示的字符长度,例如【每列最多显示10个字符,多余的会变成...】

pd.set_option ('display.max_colwidth',10)

        (4) 修改小数点精度
# 修改默认显示精度为小数点后5位

pd.set_option('precision', 5)

        (5)忽略警告
# 取消pandas相关warning提示

pd.set_option("mode.chained_assignment", None) 
# 全局取消warning
# import warnings
# warnings.filterwarnings('ignore')

        (6)修改默认绘图引擎
# 修改pandas默认绘图引擎为plotly(需要提前安装好plotly)

pd.set_option("plotting.backend","plotly")

        (7)隐藏索引
data.style.hide_index()

        (8)调整精度
# 将带有小数点的列精度调整为小数点后2位

data.style.set_precision(2)

        (9)标记缺失值
# 将缺失值标记为数据缺失

data.style.set_na_rep("数据缺失")

        (10)高亮缺失值
# 将缺失值高亮,颜色名skyblue

(data.style.set_na_rep("数据缺失").highlight_null(null_color='skyblue'))

        (11)高亮数值列最大值
# 将 数值格式列的最大值进行高亮

data.style.highlight_max()

        (12)高亮数值列最小值
# 将 数值格式列的最小值进行高亮

data.style.highlight_min()

        (13) 同时高亮最大最小值
# 同时高亮最大值(颜色代码为#F77802)与最小值(颜色代码为#26BE49)

(data.style.highlight_max(color='#F77802').highlight_min(color='#26BE49'))

        (14)指定格式高亮
# 高亮 salary 列范围在 3000 - 10000 的数值


(data.style.highlight_between(left=3000, right=10000, subset=['salary']))

        (15)渐变显示数值列
# 将数值格式的列使用渐变色(绿色)进行显示,以突出趋势

import seaborn as sns

cm = sns.light_palette("green", as_cmap=True)

(data.style.background_gradient(cmap=cm))

        (16)修改字体颜色
# 将 salary 列修改为红色字体

data.style.set_properties(subset=['salary'], **{'color': 'red'})

        (17)修改背景颜色、对齐方式、字体大小
”“”
将整个 dataframe 进行如下设置:

居中
背景色修改为 #F8F8FF
字体:13px
““”

(data.style.set_properties(**{'background-color': '#F8F8FF','text-align':'center', 'font-size': '13px'}))

        (18)综合(链式)设置
”“”
除了上面的单个设置,还可以将多个设置进行结合,下面对整个 dataframe 进行如下设置:

居中
背景色修改为 #F8F8FF
字体:13px
并将 salary 列字体修改为红色
“”“

(data.style.set_properties(**{'background-color': '#F8F8FF','text-align':'center', 'font-size': '13px'}).set_properties(
    subset=['salary'], **{'color': 'red'}))

        (19)导出样式
# 将上一题带有样式的 pandas 数据框导出为本地 Excel(.xlsx格式)

(data
.style
.set_properties(**{'background-color': '#F8F8FF','text-align':'center', 'font-size': '13px'})
.set_properties(
    subset=['salary'], **{'color': 'red'})).to_excel('带有样式导出.xlsx')

        (20) 制作指定列条形图
# 在 pandas 中对 salary 列使用条形图进行可视化,指定颜色skyblue

(data
.style
.bar(subset=['salary'],color='skyblue'))

         (21)带有条件的样式(自定义样式)
# 将 salary 列数值大于 30000 的单元格字体修改为红色

def my_style(val):

    color = 'red' if val > 30000 else 'black'
    return 'color: %s' % color


data.style.applymap(my_style, subset="salary")

        (22)指定(自定义)格式化数据
”“”
在 salary 列后增加"元"
对 matchScore 列保留两位小数并增加"分"
“”“

(data
.style
.format("{0:,.2f}分", subset="matchScore")
.format("{""}元", subset="salary"))

3.数据预览与预处理

        (1)查看数据维度
# 先看看数据多少行,多少列,对接下来的处理量心里有个数

df.shape

        (2)随机查看5条数据
df.sample(5)

        (3)查看数据前后5行
df.head()
# df.tail() # 查看后5行

        (4)查看数据基本信息
df.info()

        (5)查看数据统计信息|数值
# 查看 数值型 列的统计信息,计数、均值什么的

df.describe()

        (6)查看数据统计信息|离散
# 查看 离散型 列的统计信息,计数、频率什么

df.describe(include=['O'])

        (7) 查看数据统计信息|整体
# 查看 全部 列的统计信息

df.describe(include='all')

        (8)计算缺失值|总计
# 一共存在多少个缺失值

df.isna().sum().sum()

        (9)计算缺失值|分列
# 再看看具体每列有多少缺失值

df.isnull().sum()

        (10)查看缺失值
# 为了后面更方便的处理缺失值,现在先看看全部缺失值所在的行

df[df.isnull().T.any() == True]

        (11)高亮缺失值
”“”
 现在将缺失值进行高亮进一步查看

指路:2-15
“”“

(df[df.isnull().T.any() == True]
.style
.highlight_null(null_color='skyblue'))

         (12) 删除缺失值
“”“处理缺失值最简单的方式,当然是将缺失值出现的行全部删掉~

-> 现在,将缺失值出现的行全部删掉”“”

df =df.dropna()

        (13)缺失值补全|整体填充

# 将全部缺失值替换为 *

df = df.fillna('*') 

        (14)缺失值补全|向上填充
# 现在将评分列的缺失值,替换为上一个电影的评分

df['评分'] = df['评分'].fillna(axis=0,method='ffill')

        (15)缺失值补全|整体均值填充
# 现在,将评价人数列的缺失值,用整列的均值进行填充

df['评价人数'] = df['评价人数'].fillna(df['评价人数'].mean())

        (16)缺失值补全|上下均值填充
# 现在,将评价人数列的缺失值,用上下数字的均值进行填充

df['评价人数'] = df['评价人数'].fillna(df['评价人数'].interpolate())

        (17)缺失值补全|匹配填充
# 现在填充 “语言” 列的缺失值,要求根据 “国家/地区” 列的值进行填充

df['语言']=df.groupby('国家/地区').语言.bfill()

        (18)查找重复值
# 查找重复值
df[df.duplicated()]

        (19)查找重复值|指定
# 查找 片名 列全部重复值

df[df.duplicated(['片名'])]

        (20)删除重复值
# 删除全部的重复值

df = df.drop_duplicates()

        (21)删除重复值|指定
# 删除全部的重复值,但保留最后一次出现的值

df = df.drop_duplicates(keep = 'last')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1025735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号