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的web框架中的Model的教程
Apr 29 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
详解Python文本操作相关模块
Jun 22 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
通过Python 接口使用OpenCV的方法
Apr 02 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Python TestCase中的断言方法介绍
May 02 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法
Feb 26 Python
Python调用shell命令常用方法(4种)
May 11 Python
Python爬虫scrapy框架Cookie池(微博Cookie池)的使用
Jan 13 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
php分页函数
2006/07/08 PHP
php生成短网址示例
2014/05/05 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
javascript cookies操作集合
2010/04/12 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
jquery select动态加载选择(兼容各种浏览器)
2013/02/01 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
JS 拼凑字符串的简单实例
2016/09/02 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
vue--vuex详解
2019/04/15 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python操作json数据的一个简单例子
2014/04/17 Python
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
python冒泡排序简单实现方法
2015/07/09 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
实习老师个人总结的自我评价
2013/09/28 职场文书
信息技术课后反思
2014/04/27 职场文书
师德师风个人反思
2014/04/28 职场文书
2015年学校办公室工作总结
2015/05/26 职场文书
运动会主持人开幕词
2016/03/04 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL