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登录QQ邮箱发信的实现代码
Feb 10 Python
Python批量修改文件后缀的方法
Jan 26 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
python实现汉诺塔方法汇总
Jul 25 Python
Python 多核并行计算的示例代码
Nov 07 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
解决django FileFIELD的编码问题
Mar 30 Python
Python __slots__的使用方法
Nov 15 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
Python xlwings插入Excel图片的实现方法
Feb 26 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
jQuery 获取页面li数组并删除不在数组中的key
2016/08/02 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Node.js中console.log()输出彩色字体的方法示例
2019/12/01 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
python3 发送任意文件邮件的实例
2018/01/23 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
django foreignkey(外键)的实现
2019/07/29 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
用python进行视频剪辑
2020/11/02 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
MADE法国:提供原创设计师家具
2018/09/18 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
金融事务专业求职信
2014/04/25 职场文书
2015年中个人总结范文
2015/03/10 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
感动中国何玥观后感
2015/06/02 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
Java spring单点登录系统
2021/09/04 Java/Android
德生BCL3000抢先使用感受和评价
2022/04/07 无线电