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中xrange和range的区别
May 13 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
1分钟快速生成用于网页内容提取的xslt
Feb 23 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
python使用thrift教程的方法示例
Mar 21 Python
Python3视频转字符动画的实例代码
Aug 29 Python
python 中的jieba分词库
Nov 23 Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
python Polars库的使用简介
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
You might like
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
2017/03/07 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python del()函数用法
2013/03/24 Python
python求crc32值的方法
2014/10/05 Python
Django stark组件使用及原理详解
2019/08/22 Python
什么是Python变量作用域
2020/06/03 Python
如何利用python 读取配置文件
2021/01/06 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
软件配置管理有什么好处
2015/04/15 面试题
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
2014年自我评价
2014/01/04 职场文书
我的老师教学反思
2014/05/01 职场文书
助理政工师申报材料
2014/06/03 职场文书
2015年电教工作总结
2015/05/26 职场文书
2016年教师节慰问信
2015/12/01 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL