首先, 还是新建一个 jupyter notebook, 然后引入 csv 文件(此文件我已上传到博客园):

import pandas as pd
import numpy as np
df = pd.read_csv('/Users/rachel/Sites/pandas/py/pandas/6_handling_missing_data_replace/weather_data.csv')
df

输出:

从上面的输出截图, 可以看到有很多不合理的数据, 这时可以用 replace() 函数来处理:

new_df = df.replace([-99999, -88888], np.NaN)

输出:

这时, 就还剩下 event 列里的 0 还没有改, 因为没办法简单粗暴地把数字 0 放到 replace 函数的数组里, 这样会影响其他列的值. 这个解决办法相信大家也都不会陌生了, 就是利用 python 的 dictionary:

new_df = df.replace({
'temperature' : -99999,
'windspeed':[-99999, -88888],
'event': '0'
}, np.NaN)

下面我们再来改下原 csv 文件, 把其中各别数据加上"单位":

如果我们想把多余的字母单位去掉, 可以用正则:

new_df = df.replace('[A-Za-z]','', regex=True)

这样替换之后, 大家可以看一眼输出结果, 发现 event 列的内容都没有了, 因为字母都被替换掉了. 所以还是要这样做:

new_df = df.replace({
'temperature': '[A-Za-z]',
'windspeed': '[A-Za-z]'
} ,'', regex=True)

下面再介绍另一个特性
首先

df = pd.DataFrame({
'score': ['exceptional', 'average', 'good', 'poor', 'average', 'exceptional'],
'student': ['rob', 'maya', 'jorge', 'tom', 'july', 'erica']
})

输出:

大家可以看到目前 score 列是用4个形容词来体现成绩的, 那如果想把它们按照等级换成 1-4分呢?

new_df = df.replace(['poor', 'average', 'good', 'exceptional'], [1, 2, 3, 4])

输出:

以上, 就是 replace() 函数的相关内容, enjoy~~~

Pandas 基础(6) - 用 replace() 函数处理不合理数据的更多相关文章

  1. python pandas replace函数

    在处理数据的时候,很多时候会遇到批量替换的情况,如果一个一个去修改效率过低,也容易出错.replace()是很好的方法. 1.基本结构: df.replace(to_replace, value) 前 ...

  2. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  3. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  4. numpy&pandas基础

    numpy基础 import numpy as np 定义array In [156]: np.ones(3) Out[156]: array([1., 1., 1.]) In [157]: np.o ...

  5. 基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

    在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数 ...

  6. python学习笔记(四):pandas基础

    pandas 基础 serise import pandas as pd from pandas import Series, DataFrame obj = Series([4, -7, 5, 3] ...

  7. pandas 基础介绍与概览

    pandas是 基于NumPy数组构建的,特别是基于数组的函数和不使用for循环的数据处理 相关联的几个库, 分析库 scikit-learn 和 statsmodels 数值计算工具,NumPy 可 ...

  8. 数据转换--替换值(replace函数)

    替换值 replace函数 data=Series([1,-999,2,-999,-1000,3]) data Out[34]: 0 1 1 -999 2 2 3 -999 4 -1000 5 3 d ...

  9. 数据分析02 /pandas基础

    数据分析02 /pandas基础 目录 数据分析02 /pandas基础 1. pandas简介 2. Series 3. DataFrame 4. 总结: 1. pandas简介 numpy能够帮助 ...

随机推荐

  1. Java语言基础之方法的设计

    开发遵循原则之一: DRY原则:Don't Repeat Yourself(不要重复你自己的代码) 原因:重复意味着维护成本的增大 public static void main(String[] a ...

  2. Kruskal和prime算法的类实现,图的遍历BFS算法。

    一.图的遍历 #include<iostream> #include<queue> #include<vector> using namespace std; in ...

  3. Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]

    题目链接:http://codeforces.com/gym/101873/problem/C 题意: 这是七月的又一个阳光灿烂的日子,你决定和你的小女儿一起度过快乐的一天.因为她真的很喜欢隔壁镇上的 ...

  4. Gradle依赖无法下载问题

    之前一直在使用maven构建框架,对gradle还比较陌生.最近碰到依赖一直无法下载的问题.我采用了以下步骤进行排查: 1. 查看gradle本地仓库是否有依赖(肯定没有) 2. 查看私服是否有依赖( ...

  5. vue-router 简单使用

  6. NuGet Install-Package报错解决Package Manager Console error - PowerShell version 2.0 is not supported. Please upgrade PowerShell to 3.0 or greater and restart Visual Studio.

    问题: Package Manager Console error - PowerShell version 2.0 is not supported. Please upgrade PowerShe ...

  7. UIWebView 缓存

    //存储cookie的方法 - (void)saveCookies { // 创建一个可变字典存放cookie NSMutableDictionary *fromappDict = [NSMutabl ...

  8. PHP Echarts Ajax Json柱形图示例

    <?php $server = '127.0.0.1'; $user = 'root'; $password = ''; $database = 'yiibaidb'; $conn = new ...

  9. GIEC2019第六届全球互联网经济大会北京站震撼来袭!

    GIEC2019第六届全球互联网经济大会将于2019年8月26日-27日在北京召开,以“智慧零售数字商业”为主题,将邀请政府官员.企业高管.专家学者共议新形势下如何利人工智能和数字化的商业模式促进零售 ...

  10. SpringBoot项目启动时链接数据库很慢

    SpringBoot项目启动时链接数据库很慢 springboot项目在启动时候,如下图所示,链接数据库很慢 解决方法:在mysql 的配置文件中 配置 skip-name-resolve