数据分析工具Pandas(1):Pandas的数据结构

数据分析工具Pandas(2):Pandas的索引操作

数据分析工具Pandas(3):Pandas的对齐运算

数据分析工具Pandas(4):Pandas的函数应用


Pandas的函数应用

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.0594110         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

注意指定轴的方向,默认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

3. 通过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: int640    10
0    14
1    12
3    11
3    13
dtype: int64

对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.8890824         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

2. 按值排序

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.0000001
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

参考资料

数据分析工具Pandas(4):Pandas的函数应用相关推荐

  1. python numpy和pandas数据处理_python中添加数据分析工具numpy和pandas

    python中添加数据分析工具numpy和pandas 最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网 ...

  2. python 数据分析工具之 numpy pandas matplotlib

    作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...

  3. 数据分析工具篇——HQL原理及函数逻辑

    HQL原理及优化 HQL是数据分析过程中的必备技能,随着数据量增加,这一技能越来越重要,熟练应用的同时会带来效率的问题,动辄十几亿的数据量如果处理不完善的话有可能导致一个作业运行几个小时,更严重的还有 ...

  4. stat函数_数据分析工具入门 掌握这些Excel函数就够了

          1.什么是函数 可以把函数理解为一个可以控制的黑箱子,输入X到黑箱子中,他就会输出Y,参数就是黑箱子的控制开关,打到不同的档位,黑箱子会输出不同的Y.       2.常见函数分类 文本清 ...

  5. Python数据分析工具,主要有哪些?

    python数据分析工具一:IPython IPython是一个在多种编程语言之间进行交互计算的命令行shell,最开始是用python开发的,提供增强的内省,富媒体,扩展的shell语法,tab补全 ...

  6. 数据分析工具Pandas(7):数据清洗、合并、转化和重构

    数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 数据分析工具Pandas(3):Pandas的对齐运算 数据分析工具Pandas(4): ...

  7. 数据分析工具Pandas(6):Pandas统计计算和描述

    数据分析工具Pandas(1):Pandas的数据结构 数据分析工具Pandas(2):Pandas的索引操作 数据分析工具Pandas(3):Pandas的对齐运算 数据分析工具Pandas(4): ...

  8. 数据分析工具Pandas(1):Pandas的数据结构

    Pandas Pandas的名称来自于面板数据(panel data)和Python数据分析(data analysis). Pandas是一个强大的分析结构化数据的工具集,基于NumPy构建,提供了 ...

  9. airpassengers数据集_12个Pandas amp;amp; Numpy函数:数据分析提速50%不是问题!

    点击上方Python知识圈,设为星标 回复1024获取Python资料 阅读文本大概需要 5 分钟 近期精彩文章:Python100例(附PDF下载地址)我们都知道,Numpy 是 Python 环境 ...

最新文章

  1. html 内部浮动外部不,CSS:外部层高度自适应内部浮动层高度的方法
  2. linux 变量获取问题,有关read命令从管道输出读取变量参数的问题
  3. input输入框获取焦点时,光标置于最右
  4. Linux监控命令之 top
  5. 编码是件有逻辑的事情
  6. batch入门教程(4)
  7. js值发送给php,将JSON数据从Javascript发送到PHP?
  8. 【数据库原理实验(openGauss)】 使用JDBC连接数据库
  9. 竖屏小游戏--喵星战争源代码分析【完整】
  10. html拖拽验证,jQuery按住滑块拖动验证插件
  11. SpringCloud Alibaba(四) Nacos服务端本地启动和源码浅析(AP架构),Distro协议介绍,CAP原则介绍
  12. 解决IE兼容H5的问题
  13. 撰写 SCI 论文时,有什么好用的软件或者技巧吗?
  14. 【python练习笔记】神秘的王宫
  15. HYSBZ 2565 最长双回文串 (回文树)
  16. 转黄老师的“告别信狮”书
  17. STEP7编程免驱动方式(METH-MPI-S2)
  18. 创建数据库是列名无效咋办_列创建后,sql server上的列名无效
  19. 新手入门WPF之TreeView控件(一)
  20. VS code 远程调试配置

热门文章

  1. 我花了10个小时,写出了这篇K8S架构解析
  2. 迄今为止程序员写过的最大Bug:亏损30亿、致6人死亡,甚至差点毁灭世界
  3. InnoDB解决幻读的方案--LBCCMVCC
  4. 高端华为笔记本敲代码就是爽!!包邮送!
  5. 低代码、无代码?深度解读硅谷新趋势(上)
  6. 阿里飞猪搜索技术的应用与创新
  7. 风险清退之后,这类平台反而更靠谱
  8. 绩效面谈的细节,阿里巴巴是如何做的?
  9. 编写MapReduce程序,统计每个买家收藏商品数量,实现统计排序功能
  10. c++获取当前目录_如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境?