文章目录

  • DataFrame基本列操作
  • DataFrame常用列处理

DataFrame基本列操作

import pandas as pd
import numpy as np# 设置实验数据
l = [["p", 12, 12, 0], [np.nan, 12.3, 33., 0], ["q", 12.3, 0, 0], ["r", 1, 1, 0]]
df = pd.DataFrame(l, columns=["a", "b", "c", "d"])print(df)
"""a     b     c  d
0    p  12.0  12.0  0
1  NaN  12.3  33.0  0
2    q  12.3   0.0  0
3    r   1.0   1.0  0
"""# 全为数字的列直接进行运算
df['c']=df['c']*8
print(df)
"""a     b       c  d
0    p  12.0   768.0  0
1  NaN  12.3  2112.0  0
2    q  12.3     0.0  0
3    r   1.0    64.0  0
"""# 对两列也可以进行运算(注意数据类型)
df['b*c']=df['b']*df['c']
print(df)"""a     b       c  d      b*c
0    p  12.0   768.0  0   9216.0
1  NaN  12.3  2112.0  0  25977.6
2    q  12.3     0.0  0      0.0
3    r   1.0    64.0  0     64.0
"""# 含有字符串的列也有类似操作
df['a*8'] = df['a']*8
print(df)"""a     b       c  d      b*c       a*8
0    p  12.0   768.0  0   9216.0  pppppppp
1  NaN  12.3  2112.0  0  25977.6       NaN
2    q  12.3     0.0  0      0.0  qqqqqqqq
3    r   1.0    64.0  0     64.0  rrrrrrrr
"""# 列值上移或者下移
df['b'].shift(1) # 整体下移一行(默认参数即为1)
"""
0     NaN
1    12.0
2    12.3
3    12.3
Name: b, dtype: float64
"""
df['b'].shift(-1) # 整体上移一行
"""
0    12.3
1    12.3
2     1.0
3     NaN
Name: b, dtype: float64
"""# 向下取得逐行差值(与.shift()方法的参数类似取负值为向上)
df['b'].diff(1)
"""
0     NaN
1     0.3
2     0.0
3   -11.3
Name: b, dtype: float64
"""# 获得涨跌幅
df['b'].pct_change()
"""
0         NaN
1    0.025000
2    0.000000
3   -0.918699
Name: b, dtype: float64
"""# 排序:获得排名
df['c'].rank()
"""
0    3.0
1    4.0
2    1.0
3    2.0
Name: c, dtype: float64
"""

DataFrame常用列处理

# 仍然沿用上一小节的数据# 去掉全为零的列
df1 = df.loc[:, (df!=0).any()]
# df1 = df.drop(df.loc[:, (df==0).all()], axis=1) # 第二种方法
print(df1)
"""a     b     c
0    p  12.0  12.0
1  NaN  12.3  33.0
2    q  12.3   0.0
3    r   1.0   1.0
"""# 将列中的0值用该列的平均值(不包含0)替代
# 先将0值改变成NaN
df.loc[:,'c'] = df.loc[:,'c'].apply(lambda x: np.nan if x==0 else x)
# 再将NaN用每一列的Mean填充
df.loc[:,'c'].fillna(value=df.loc[:,'c'].mean(), inplace=True)print(df)
"""a     b          c  d
0    p  12.0  12.000000  0
1  NaN  12.3  33.000000  0
2    q  12.3  15.333333  0
3    r   1.0   1.000000  0
"""

pandas使用笔记(二)列操作相关推荐

  1. MongoDB学习笔记二—Shell操作

    数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{"x":null} 布尔型 布尔类型有两 ...

  2. pandas学习笔记二之pandas选择器

    pandas选择器

  3. Python科学计算-Numpy和Pandas学习笔记(二)-Numpy的基本运算(chaochao`s Blog)

    1 前言 本章介绍numpy的基本运算. 2 Numpy的基本运算 numpy的基本运算是对矩阵中每个元素进行相应的运算. 2.1 加减乘除 加.减.乘.除. import numpy as np a ...

  4. pandas 每一列相加_Python3 numpy amp; pandas 学习笔记

    写在前面 在用python做一些ML和DL的工作前,先看莫烦大佬的视频学习一下numpy和pandas这两个数据处理包,学习中记了一些笔记,便于自己日后查阅,同时发布到知乎希望能够帮助到其他小伙伴! ...

  5. Python数据分析模块 | pandas做数据分析(二):常用预处理操作

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程  重温深度学习 阅读全文 > 在数据分析和机器学习的一些任务里面,对于数据集的某些列或者行丢弃,以及数据集之间的合并操作是非常 ...

  6. iView学习笔记(三):表格搜索,过滤及隐藏列操作

    iView学习笔记(三):表格搜索,过滤及隐藏某列操作 1.后端准备工作 环境说明 python版本:3.6.6 Django版本:1.11.8 数据库:MariaDB 5.5.60 新建Django ...

  7. python pandas dataframe函数_Pandas的DataFrame列操作

    13. Pandas的DataFrame列操作 本章主要研究一下DataFrame数据结构如何修改.增删等操作. 13.1 rename修改列名字 对一个dataframe的数据使用rename函数后 ...

  8. Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用

    Polyworks脚本开发学习笔记(二十)-补充几个常见操作指令的使用 大概要写到结尾了,最后几篇就将手册的各常用命令再看一遍,组合一下,并列举出常见的一些有用的操作. DATA_COLOR_MAP数 ...

  9. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例(增删改查排序之选择指定列、根据条件选择特定数据、赋值、列名重命名、修改列数据、处理缺失值、列合并、分组之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例(增删改查排序之选择指定列.根据条件选择特定数据.赋值.列名重命名.修改列数据.处理缺失值.列合并.分组之详细攻略 ...

最新文章

  1. fatfree-f3小型php框架(二)
  2. python读txt转array_np.array和txt文件的转换
  3. JS获取iFrame的内容
  4. 2017-2018-2 20179202《网络攻防技术》第一周作业
  5. linux下kill某个应用
  6. hadoop伪分布式(单机版)安装,Linux
  7. Dos命令使用Latex编写“Hello Latex.”
  8. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...
  9. Linux Centos date使用心得
  10. sqlite具体操作篇
  11. 谷歌翻译插件对大陆停止服务及其解决方案
  12. 单晶X射线衍射法和粉末X射线衍射法有哪些不同?
  13. 老司机用CATIA的实用默认值更改
  14. Win10系统打开共享文件提示没有权限使用网络资源怎么处理
  15. 风格化(Stylization)
  16. css中repeat用法,CSS background-repeat用法及代码示例
  17. 一个简单的JS(盒子移动)
  18. B站陈睿说:“B站也是个学习APP”!亲测还很好学
  19. 【TypeScript】Object、object和{}类型
  20. 如何设计一个自己的操作系统(1)

热门文章

  1. logging模块介绍
  2. ASP.NET MVC 4 内容映射
  3. 【转】 UML各种线的含义
  4. 防止a标签跳转的几种方法
  5. Qbxt 模拟题 day3(am) T3 选数字 (select)(贪心)
  6. html代码高亮带行号,kindeditor代码高亮自动行号功能
  7. python处理mat数据和处理png的区别_Python---利用scipy.misc等库对jpg以及png等图像数据预处理(用于深度学习喂数据)...
  8. 动态规划——乘积最大子数组(Leetcode 152)
  9. 二分答案——小车问题(洛谷 P1258)
  10. Tensorflow——张量