Python数据分析之pandas函数详解


Posted in Python onApril 21, 2021

一、apply和applymap

1. 可直接使用NumPy的函数

示例代码:

# Numpy ufunc 函数
df = pd.DataFrame(np.random.randn(5,4) - 1)
print(df)
 
print(np.abs(df))

运行结果:

         0         1         2         3
0 -0.062413  0.844813 -1.853721 -1.980717
1 -0.539628 -1.975173 -0.856597 -2.612406
2 -1.277081 -1.088457 -0.152189  0.530325
3 -1.356578 -1.996441  0.368822 -2.211478
4 -0.562777  0.518648 -2.007223  0.059411
 
          0         1         2         3
0  0.062413  0.844813  1.853721  1.980717
1  0.539628  1.975173  0.856597  2.612406
2  1.277081  1.088457  0.152189  0.530325
3  1.356578  1.996441  0.368822  2.211478
4  0.562777  0.518648  2.007223  0.059411

2. 通过apply将函数应用到列或行上

示例代码:

# 使用apply应用行或列数据
#f = lambda x : x.max()
print(df.apply(lambda x : x.max()))

运行结果:

0   -0.062413
1    0.844813
2    0.368822
3    0.530325
dtype: float64

3.注意指定轴的方向,默认axis=0,方向是列

示例代码:

# 指定轴方向,axis=1,方向是行
print(df.apply(lambda x : x.max(), axis=1))

运行结果:

0    0.844813
1   -0.539628
2    0.530325
3    0.368822
4    0.518648
dtype: float64

4. 通过applymap将函数应用到每个数据上

示例代码:

# 使用applymap应用到每个数据
f2 = lambda x : '%.2f' % x
print(df.applymap(f2))

运行结果:

      0      1      2      3
0  -0.06   0.84  -1.85  -1.98
1  -0.54  -1.98  -0.86  -2.61
2  -1.28  -1.09  -0.15   0.53
3  -1.36  -2.00   0.37  -2.21
4  -0.56   0.52  -2.01   0.06

二、排序

1. 索引排序

sort_index()

排序默认使用升序排序,ascending=False 为降序排序

示例代码:

# Series
s4 = pd.Series(range(10, 15), index = np.random.randint(5, size=5))
print(s4)
 
# 索引排序
s4.sort_index() # 0 0 1 3 3

运行结果:

0    10
3    11
1    12
3    13
0    14
dtype: int64
 
0    10
0    14
1    12
3    11
3    13
dtype: int64

2.对DataFrame操作时注意轴方向

示例代码:

# DataFrame
df4 = pd.DataFrame(np.random.randn(3, 5), 
                   index=np.random.randint(3, size=3),
                   columns=np.random.randint(5, size=5))
print(df4)
 
df4_isort = df4.sort_index(axis=1, ascending=False)
print(df4_isort) # 4 2 1 1 0

运行结果:

  1         4         0         1         2
2 -0.416686 -0.161256  0.088802 -0.004294  1.164138
1 -0.671914  0.531256  0.303222 -0.509493 -0.342573
1  1.988321 -0.466987  2.787891 -1.105912  0.889082
 
          4         2         1         1         0
2 -0.161256  1.164138 -0.416686 -0.004294  0.088802
1  0.531256 -0.342573 -0.671914 -0.509493  0.303222
1 -0.466987  0.889082  1.988321 -1.105912  2.787891

3. 按值排序

sort_values(by='column name')

根据某个唯一的列名进行排序,如果有其他相同列名则报错。

示例代码:

# 按值排序
df4_vsort = df4.sort_values(by=0, ascending=False)
print(df4_vsort)

运行结果:

 1         4         0         1         2
1  1.988321 -0.466987  2.787891 -1.105912  0.889082
1 -0.671914  0.531256  0.303222 -0.509493 -0.342573
2 -0.416686 -0.161256  0.088802 -0.004294  1.164138

三、处理缺失数据

示例代码:

df_data = pd.DataFrame([np.random.randn(3), [1., 2., np.nan],
                       [np.nan, 4., np.nan], [1., 2., 3.]])
print(df_data.head())

运行结果:

      0         1         2
0 -0.281885 -0.786572  0.487126
1  1.000000  2.000000       NaN
2       NaN  4.000000       NaN
3  1.000000  2.000000  3.000000

1. 判断是否存在缺失值:isnull()

示例代码:

# isnull
print(df_data.isnull())

运行结果:

     0      1      2
0  False  False  False
1  False  False   True
2   True  False   True
3  False  False  False

2. 丢弃缺失数据:dropna()

根据axis轴方向,丢弃包含NaN的行或列。 示例代码:

# dropna
print(df_data.dropna())
 
print(df_data.dropna(axis=1))

运行结果:

      0         1         2
0 -0.281885 -0.786572  0.487126
3  1.000000  2.000000  3.000000
 
          1
0 -0.786572
1  2.000000
2  4.000000
3  2.000000

3. 填充缺失数据:fillna()

示例代码:

# fillna
print(df_data.fillna(-100.))

运行结果:

            0         1           2
0   -0.281885 -0.786572    0.487126
1    1.000000  2.000000 -100.000000
2 -100.000000  4.000000 -100.000000
3    1.000000  2.000000    3.000000

 

到此这篇关于Python数据分析之pandas函数详解的文章就介绍到这了,更多相关python的pandas函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python使用cookielib模块操作cookie的实例教程
Jul 12 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
利用nohup来开启python文件的方法
Jan 14 Python
Python实现的爬取豆瓣电影信息功能案例
Sep 15 Python
Python hmac模块使用实例解析
Dec 24 Python
Python 实现自动获取种子磁力链接方式
Jan 16 Python
tensorflow 实现数据类型转换
Feb 17 Python
如何打包Python Web项目实现免安装一键启动的方法
May 21 Python
python爬虫实例之获取动漫截图
May 31 Python
Python 如何反方向迭代一个序列
Jul 28 Python
Python实现简单的猜单词
Jun 15 Python
实操Python爬取觅知网素材图片示例
Nov 27 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
COM in PHP (winows only)
2006/10/09 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
2012/07/01 PHP
php实现图片缩放功能类
2013/12/18 PHP
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
php判断表是否存在的方法
2015/06/18 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
jQuery学习笔记 获取jQuery对象
2012/09/19 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
2016/02/19 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
vue 中自定义指令改变data中的值
2017/06/02 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
详解vue渲染函数render的使用
2017/12/12 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
使用easyui从servlet传递json数据到前端页面的两种方法
2019/09/05 Javascript
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
python如何构建mock接口服务
2021/01/28 Python
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
秘书行业自我鉴定范文
2013/12/30 职场文书
护理专业求职信
2014/06/15 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
《自然之道》读后感3篇
2019/12/17 职场文书