原数据如下所示:

IMAGETYPE count
.?+? 1713
Jh.5? 100
.??U 38
.11.1 1
.13.1 1
.15.11 2

我需要对数据内的带有特殊符号,且第一个逗号前的数据进行清洗。

分析清洗条件:

1.含有字符如:?,<,>,),(,=,# 的数据全部清洗drop

2.第一个逗号前面,得满足条件1)可以带有首字母a或A;2)数字部分不能大于29

分析思路:

1.创建函数,判断字符串,由于用的Series,所以用apply()就可以对每个元素进行判断操作,读进来是一个字符串,如果是dataframe格式,需要使用applymap()才能读到每个元素

2.首先判断读进来的字符串是否含有特殊字符,这里用了一个循环判断

3.然后切割字符串,判断第一个元素是不是空;是不是含有A或a;是不是数字小于29

4.如果不满足上述条件的,都返回 None,方便在dataframe中使用dropna()删除脏数据

完整代码如下:

import pandas as pd
df = pd.read_csv(r'Result_6.csv') def re(x):
list1 = ["-","?","=","@","*","(",">"]
for i in list1:
if i in x:
return None
a = x.split(".")
try:
if a[0] == '':
return None
elif a[0][0] == 'a' or a[0][0] == 'A':
if int(a[0][1:]) > 29:
return None
elif int(a[0]) > 29:
return None
except:
return None
return x df["IMAGETYPE"] = df["IMAGETYPE"].apply(re)
df = df.dropna(axis=0, how="any")
df.to_csv('clean3.csv', encoding='utf-8')

脏数据清洗,pandas.apply()的应用的更多相关文章

  1. [数据清洗]- Pandas 清洗“脏”数据(二)

    概要 了解数据 分析数据问题 清洗数据 整合代码 了解数据 在处理任何数据之前,我们的第一任务是理解数据以及数据是干什么用的.我们尝试去理解数据的列/行.记录.数据格式.语义错误.缺失的条目以及错误的 ...

  2. [数据清洗]- Pandas 清洗“脏”数据(三)

    预览数据 这次我们使用 Artworks.csv ,我们选取 100 行数据来完成本次内容.具体步骤: 导入 Pandas 读取 csv 数据到 DataFrame(要确保数据已经下载到指定路径) D ...

  3. [数据清洗]-Pandas 清洗“脏”数据(一)

    概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...

  4. pandas apply()函数参数 args

    #!/usr/bin/python import pandas as pd data = {'year':[2000,2001,2002,2001,2002],'value':[1.5,1.7,3.6 ...

  5. pandas,apply并行计算的一个demo

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2018-10-11 17:55:26 # @Author : Sheldon (thi ...

  6. pandas.apply()函数

    1.介绍 apply函数是pandas里面所有函数中自由度最高的函数.该函数如下: DataFrame.apply(func, axis=0, broadcast=False, raw=False, ...

  7. 学习pandas apply方法,看这一篇就够了,你该这么学,No.10

    最近好忙啊,好忙啊,忙的写不动博客了 时间过得飞快 一晃,一周就过去了 本着不进步就倒退的性格 我成功的在技术上面划水了一周 今天要学习的还是groupby的高级进阶 说是高级,其实就是比初级复杂了一 ...

  8. pandas apply 添加进度条

    Way:from tqdm import tqdmimport pandas as pdtqdm.pandas(desc='pandas bar')df['title_content'] = df.p ...

  9. [数据清洗]-使用 Pandas 清洗“脏”数据

    概要 准备工作 检查数据 处理缺失数据 添加默认值 删除不完整的行 删除不完整的列 规范化数据类型 必要的转换 重命名列名 保存结果 更多资源 Pandas 是 Python 中很流行的类库,使用它可 ...

随机推荐

  1. promise 理解与总结

    对Promise的理解 Promise是异步编程的一种解决方案,可以获取异步操作的消息,避免了地狱回调,它比传统的解决方案回调函数和事件更合理和更强大. 所谓Promise,简单说就是一个容器,里面保 ...

  2. FLask插件

    Flask插件 flask-session 下载 pip install Flask-session 导入 from flask_session import Session 实例化session 在 ...

  3. 4月4日 python学习总结 os pickle logging

    1.序列化和反序列化 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling. 反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickl ...

  4. Pulsar 也会重复消费?

    背景 许久没有分享 Java 相关的问题排查了,最近帮同事一起排查了一个问题: 在使用 Pulsar 消费时,发生了同一条消息反复消费的情况. 排查 当他告诉我这个现象的时候我就持怀疑态度,根据之前使 ...

  5. Prometheus+alertmanager告警配置-2

    prometheus 告警 prometheus 通过alertmanager进行告警 实现监控告警的步骤: 在prometheus中定义告警规则rule_files alertmanager配置告警 ...

  6. Spring Cache缓存框架

    一.序言 Spring Cache是Spring体系下标准化缓存框架.Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis.EhCache.Caffeine均支持.它们 ...

  7. 第九届蓝桥杯 C组 Java 等腰三角形

    目录 题目 解答 题目 题目描述 本题目要求你在控制台输出一个由数字组成的等腰三角形. 具体的步骤是: 1. 先用1,2,3,...的自然数拼一个足够长的串 2. 用这个串填充三角形的三条边.从上方顶 ...

  8. Java 中 ConcurrentHashMap 的并发度是什么?

    ConcurrentHashMap 把实际 map 划分成若干部分来实现它的可扩展性和线程安 全.这种划分是使用并发度获得的,它是 ConcurrentHashMap 类构造函数的一 个可选参数,默认 ...

  9. Mock 或 Stub 有什么区别?

    存根 一个有助于运行测试的虚拟对象. 在某些可以硬编码的条件下提供固定行为. 永远不会测试存根的任何其他行为. 例如,对于空堆栈,您可以创建一个只为 empty()方法返回 true 的存根.因此, ...

  10. 读懂jstack

    1 jstack jstack是JDK自带的一种线程栈跟踪工具,用于生成java虚拟机当前时刻线程快照.在定位线程卡顿.死锁.block等原因的时候非常有用.使用方法是: jstack [-l] pi ...