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 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
Python合并字符串的3种方法
May 21 Python
Python实现删除时保留特定文件夹和文件的示例
Apr 27 Python
Python 函数返回值的示例代码
Mar 11 Python
详解用python生成随机数的几种方法
Aug 04 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
Dec 22 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 Python
利用python生成照片墙的示例代码
Apr 09 Python
python dict乱码如何解决
Jun 07 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
Django自带的用户验证系统实现
Dec 18 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
PHP新手上路(六)
2006/10/09 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
phpstorm配置Xdebug进行调试PHP教程
2014/12/01 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
你真的了解JavaScript吗?
2007/02/24 Javascript
鼠标事件延时切换插件
2011/03/12 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
Python中运行并行任务技巧
2015/02/26 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
python 使用get_argument获取url query参数
2017/04/28 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
python计算日期之间的放假日期
2018/06/05 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Python爬虫开发与项目实战
2020/12/16 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
运动会800米加油稿
2014/02/22 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库