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九九乘法表的实例
Sep 26 Python
python密码错误三次锁定(实例讲解)
Nov 14 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
Python 列表去重去除空字符的例子
Jul 20 Python
python 控制Asterisk AMI接口外呼电话的例子
Aug 08 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
Python版中国省市经纬度
Feb 11 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
Python自动登录QQ的实现示例
Aug 28 Python
Python与C++中梯度方向直方图的实现
Mar 17 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
php-app开发接口加密详解
2018/04/18 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
javascript计时器事件使用详解
2014/01/07 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
javascript简单判断输入内容是否合法的方法
2016/05/11 Javascript
利用JS实现数字增长
2016/07/28 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
2017/08/16 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
vuex直接赋值的三种方法总结
2018/09/16 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python3写爬取B站视频弹幕功能
2017/12/22 Python
pandas 时间格式转换的实现
2019/07/06 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
单位作风建设自查报告
2014/10/23 职场文书
道德模范事迹材料
2014/12/20 职场文书
开天辟地观后感
2015/06/09 职场文书
汽车车尾标语大全
2015/08/11 职场文书
redis实现排行榜功能
2021/05/24 Redis
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
Python一些基本的图像操作和处理总结
2021/06/23 Python
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫