精华内容
下载资源
问答
  • 数据清洗

    2019-08-19 22:00:25
    1.什么是数据清洗 数据清洗指将原始数据处理成有价值的数据的过程,就称为数据清洗。这是由大数据的低价值密度的特点决定的。 2.大数据开发的基本流程 采集数据(flume、logstash)先保存到MQ(Kafka) 将MQ...

    1.什么是数据清洗

    数据清洗指将原始数据处理成有价值的数据的过程,就称为数据清洗。这是由大数据的低价值密度的特点决定的。

    2.大数据开发的基本流程

    1. 采集数据(flume、logstash)先保存到MQ(Kafka) 中
    2. 将MQ中的暂存数据存放到HDFS中保存。
    3. 数据清洗(低价值密度的数据处理),存放到HDFS。
    4. 算法干预(MapReduce),计算结果保存到HDFS或者HBase。
    5. 计算结果的可视化展示(Echarts、 HCharts)

    3.使用正则表达式提取数据

    正则表达式主要作用字符串匹配抽取替换

    语法:

    规则 解释
    . 匹配任意字符
    \d 匹配任意数字
    \D 匹配任意非数字
    \w 匹配az和AZ
    \W 匹配非az和AZ
    \s 匹配空白符
    ^ 匹配字符串的开头
    $ 匹配字符串的末尾

    规则的匹配次数

    语法 解释
    * 规则匹配0到N次
    规则匹配1次
    {n} 规则匹配N次
    {n,m} 规则匹配n到m次
    + 规则匹配1到N次(至少一次)

    4.访问日志案例分析

    1.数据样式 部分数据,总数据量50万条

    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /static/image/common/faq.gif HTTP/1.1” 200 1127
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /data/cache/style_1_widthauto.css?y7a HTTP/1.1” 200 1292
    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /static/image/common/hot_1.gif HTTP/1.1” 200 680
    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /static/image/common/hot_2.gif HTTP/1.1” 200 682
    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /static/image/filetype/common.gif HTTP/1.1” 200 90
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /source/plugin/wsh_wx/img/wsh_zk.css HTTP/1.1” 200 1482
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /data/cache/style_1_forum_index.css?y7a HTTP/1.1” 200 2331
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /source/plugin/wsh_wx/img/wx_jqr.gif HTTP/1.1” 200 1770
    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /static/image/common/recommend_1.gif HTTP/1.1” 200 1030
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /static/image/common/logo.png HTTP/1.1” 200 4542
    27.19.74.143 - - [30/May/2013:17:38:20 +0800] “GET /data/attachment/common/c8/common_2_verify_icon.png HTTP/1.1” 200 582
    110.52.250.126 - - [30/May/2013:17:38:20 +0800] “GET /static/js/logging.js?y7a HTTP/1.1” 200 603

    大数据处理算法,需要参数 客户端的ip、=请求时间、=资源响应状态

    2.使用正则表达式提取四项数据

    在这里插入图片描述
    分析后得到需要的正则表达式

    ^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).*\[(.*)\]\s(.*)\w\sHTTP\/1.1"\s(\d{3}).*$

    3.使用MapReduce分布式计算框架进行数据清洗

    注意:因为数据清洗不涉及统计计算,所有MapReduce程序通常只有map任务,而没有Reduce任务
    job.setNumReduceTasks(0)

    实现代码

    1.数据清洗的Mapper

    package com.hw.dataClearn;
    
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.NullWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Mapper;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import java.io.IOException;
    
    /**
     * @aurhor:fql
     * @date 2019/8/19 12:40
     * @type:
     */
    public class DateClearnMapper extends Mapper<LongWritable, Text,Text, NullWritable> {
        /**
         *
         * @param key
         * @param value neginx访问日志中的一条记录
         * @param context
         * @throws IOException
         * @throws InterruptedException
         */
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            final String regex = "^(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}).*\\[(.*)\\]\\s\"\\w*\\s(.*)\\sHTTP\\/1.1\"\\s(\\d{3}).*$";
             String line = value.toString();
    
            final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
            final Matcher matcher = pattern.matcher(line);
    
            while (matcher.find()) {
                String ip = matcher.group(1);
                String accertTime = matcher.group(2);
                String resources = matcher.group(3);
                String status = matcher.group(4);
                //30/May/2013:17:38:20 +0800
                SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss", Locale.ENGLISH);
                try {
                    Date date = sdf.parse(accertTime);
                    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    String finalDate = sdf2.format(date);
                    context.write(new Text(ip + " " + finalDate + " " + resources + " " + status), null);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    

    2.初始化类

    package com.hw.dataClearn;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.NullWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
    import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
    
    import java.io.IOException;
    
    /**
     * @aurhor:fql
     * @date 2019/8/19 12:40
     * @type:
     */
    public class DataClearnApplication {
        public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
            Configuration conf = new Configuration();
            Job job = Job.getInstance(conf, "data clean");
            job.setJarByClass(DataClearnApplication.class);
    
            job.setInputFormatClass(TextInputFormat.class);
            job.setOutputFormatClass(TextOutputFormat.class);
            
            //设置本地计算
            TextInputFormat.setInputPaths(job,new Path("file:///d:/my/access.log"));
            TextOutputFormat.setOutputPath(job,new Path("file:///d:/my/final"));
    
            job.setMapperClass(DateClearnMapper.class);
    
            // 注意:数据清洗通常只有map任务而没有reduce
            job.setNumReduceTasks(0);
    
            job.setMapOutputKeyClass(Text.class);
            job.setMapOutputValueClass(NullWritable.class);
    
            job.waitForCompletion(true);
    
        }
    }
    
    

    3.结果展示

    1. 生成文件
      在这里插入图片描述
    2. 部分结果
      在这里插入图片描述
    展开全文
  • 数据清洗技术——Excel数据清洗一、实验目的和要求二、实验环境三、实验内容和实验步骤 一、实验目的和要求 1、了解 Excel 的基本功能和用途 2、掌握 Excel 数据清洗的基本步骤 3、了解 Excel 数据清洗的方法 4、...


    一、实验目的和要求

    1、了解 Excel 的基本功能和用途
    2、掌握 Excel 数据清洗的基本步骤
    3、了解 Excel 数据清洗的方法
    4、掌握 Excel 常用的数据分析函数
    5、掌握 Excel 数据清洗常用的函数

    二、实验环境

    操作系统:Windows XP/7/8/10…
    Excel版本:2007/2019…
    JDK版本:1.7.0
    Kettle版本:4.4.0
    MySQL版本:8.0

    三、实验内容和实验步骤

    实验内容:
    现有一个企业招聘职位信息的数据集,约有 5000条数据,客户提出需要了解数据分析师岗位情况,包括岗位分布和特点、能力要求、工资和薪酬等。由于数据集没有经过处理,所以表中的数据还很不规范,含有大量数据重复、缺失、单列数据粒度过大等问题,因此,在进行数据分析前,需要进行数据清洗操作,以使数据规范化。


    实验步骤:

    1、数据预览
    拿到数据后,不要急着动手处理,先对数据集做总体的观察。如图 1-1 所示,可以看到,数据集表头由城市、公司名称、公司编号、公司福利、公司规模、经营区域、经营范围、教育程度、职位编号、职位名称、薪水和工作年限要求等属性组成。

    在这里插入图片描述
    数据整体较为规整,但通过初步观察,该数据集主要存在如下问题:
    (1)数据缺失
    (2)数据不一致
    (3)存在“脏”数据
    (4)数据不规范

    2、进行数据清洗
    在 Excel 中新建一个工作表执行数据清洗,方便和原始数据区分开来。
    (1) 清洗薪水数据
    采用分列操作(数据-分列),以“-”为分隔符号,得到两列数据,将属性修改为最低薪水和最高薪水,如图所示。
    在这里插入图片描述
    在这里插入图片描述
    然后,利用替换功能(开始-查找和选择-替换),删除 k 字符串和“以上”两个 字,结果如图 1-3 所示。在这里插入图片描述
    在这里插入图片描述
    (2) 分列操作
    按照与薪水数据清洗类似操作,通过分列操作分别对公司福利、经营区域、
    经营范围、职位标签等属性进行数据拆分。
    在这里插入图片描述
    在这里插入图片描述
    (3)搜索替换不一致
    公司名称的不一致的处理,只需要用搜索替换法删除即可。
    职位名称的不一致处理可以单独针对职位名称进行数据透视表分析,统计出各名称出现的频次,具体操作如下。
    步骤 1:选中职位名称列,在菜单栏中选择“插入”—“数据透视表”选项,然后单击“确定”按钮,在出现的数据透视表字段列表中,分别拖动“职位名称”到“行标签”和“Σ数值”中,结果如图 1-4 所示。出现次数为 3 次以下的职位名称,约有2000 个,采用关键词查找的方法,找到包含有“数据分析”、“分析师”、“数据运营”等关键词的岗位。
    在这里插入图片描述
    在这里插入图片描述
    步骤 2:结合使用 FIND 和数组函数,得到多条件查找的结果。查找公式 为:=IF(COUNT(FIND({“数据分析”,“数据运营”,“分析师”},J2)),“1”,“0”),结果如图所示1为包含,0为不包含。将1过滤出来,就是需要的最终数据。
    在这里插入图片描述
    在这里插入图片描述
    经过以上步骤的处理,数据集中的重复值得到清理,公司名称、职位名称部分的命名做了规范化处理,薪水范围拆分成两列处理等,数据集得到一定程度的清洗。

    展开全文
  • 前言数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作确实如此。数据清洗的目的有两个,第...

    前言

    数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程中最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据,这听起来有些匪夷所思,但在实际的工作中确实如此。数据清洗的目的有两个,第一是通过清洗让数据可用。第二是让数据变的更适合进行后续的分析工作。换句话说就是有”脏”数据要洗,干净的数据也要洗。

    在数据分析中,特别是文本分析中,字符处理需要耗费极大的精力,因而了解字符处理对于数据分析而言,也是一项很重要的能力。

    字符串处理方法

    首先我们先了解下都有哪些基础方法

    1049111b6-0.png

    首先我们了解下字符串的拆分split方法

    ?

    1

    2

    str='i like apple,i like bananer'

    print(str.split(','))

    对字符str用逗号进行拆分的结果:

    ['i like apple', 'i like bananer']

    ?

    1

    print(str.split(' '))

    根据空格拆分的结果:

    ['i', 'like', 'apple,i', 'like', 'bananer']

    ?

    1

    2

    print(str.index(','))

    print(str.find(','))

    两个查找结果都为:

    12

    找不到的情况下index返回错误,find返回-1

    ?

    1

    print(str.count('i'))

    结果为:

    4

    connt用于统计目标字符串的频率

    ?

    1

    print(str.replace(',',' ').split(' '))

    结果为:

    ['i', 'like', 'apple', 'i', 'like', 'bananer']

    这里replace把逗号替换为空格后,在用空格对字符串进行分割,刚好能把每个单词取出来。

    除了常规的方法以外,更强大的字符处理工具费正则表达式莫属了。

    正则表达式

    在使用正则表达式前我们还要先了解下,正则表达式中的诸多方法。

    1049115494-1.png

    下面我来看下个方法的使用,首先了解下match和search方法的区别

    ?

    1

    2

    3

    4

    5

    6

    str = "Cats are smarter than dogs"

    pattern=re.compile(r'(.*) are (.*?) .*')

    result=re.match(pattern,str)

    for iin range(len(result.groups())+1):

    print(result.group(i))

    结果为:

    Cats are smarter than dogs

    Cats

    smarter

    这种形式的pettern匹配规则下,match和search方法的的返回结果是一样的

    此时如果把pattern改为

    ?

    1

    pattern=re.compile(r'are (.*?) .*')

    match则返回none,search返回结果为:

    are smarter than dogs

    smarter

    接下来我们了解下其他方法的使用

    ?

    1

    2

    3

    4

    str = "138-9592-5592 # number"

    pattern=re.compile(r'#.*$')

    number=re.sub(pattern,'',str)

    print(number)

    结果为:

    138-9592-5592

    以上是通过把#号后面的内容替换为空实现提取号码的目的。

    我们还可以进一步对号码的横杆进行替换

    ?

    1

    print(re.sub(r'-*','',number))

    结果为:

    13895925592

    我们还可以用find的方法把找到的字符串打印出来

    ?

    1

    2

    3

    str = "138-9592-5592 # number"

    pattern=re.compile(r'5')

    print(pattern.findall(str))

    结果为:

    ['5', '5', '5']

    正则表达式的整体内容比较多,需要我们对匹配的字符串的规则有足够的了解,下面是具体的匹配规则。

    1049111521-2.png

    矢量化字符串函数

    清理待分析的散乱数据时,常常需要做一些字符串规整化工作。

    ?

    1

    2

    3

    data= pd.Series({'li':'120@qq.com','wang':'5632@qq.com',

    'chen':'8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})

    print(data)

    结果为:

    1049115E8-3.png

    可以通过规整合的一些方法对数据做初步的判断,比如用contains 判断每个数据中是否含有关键词

    ?

    1

    print(data.str.contains('@'))

    结果为:

    10491164P-4.png

    也可以对字符串进行分拆,把需要的字符串提取出来

    ?

    1

    2

    3

    4

    5

    data= pd.Series({'li':'120@qq.com','wang':'5632@qq.com',

    'chen':'8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})

    pattern=re.compile(r'(\d*)@([a-z]+)\.([a-z]{2,4})')

    result=data.str.match(pattern)#这里用fillall的方法也可以result=data.str.findall(pattern)

    print(result)

    结果为:

    chen [(8622, xinlang, com)]

    li [(120, qq, com)]

    sun [(5243, gmail, com)]

    wang [(5632, qq, com)]

    zhao NaN

    dtype: object

    此时加入我们需要提取邮箱前面的名称

    ?

    1

    print(result.str.get(0))

    结果为:

    1049113456-5.png

    或者需要邮箱所属的域名

    ?

    1

    print(result.str.get(1))

    结果为:

    1049114K0-6.png

    当然也可以用切片的方式进行提取,不过提取的数据准确性不高

    ?

    1

    2

    3

    data= pd.Series({'li':'120@qq.com','wang':'5632@qq.com',

    'chen':'8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})

    print(data.str[:6])

    结果为:

    1049111038-7.png

    最后我们了解下矢量化的字符串方法

    1049113928-8.png

    总结

    以上就是python数据清洗之字符串处理的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

    展开全文
  • 任务需求清洗json格式的弹幕数据(以“聆听丶芒果鱼直播间时间切片弹幕.json”为例),具体要求如下:提取出所有弹幕类型(列表的第1个元素)为”NM“的弹幕的内容(列表的第4个元素)取出,存为一条弹幕为一行...

    任务需求

    清洗json格式的弹幕数据(以“聆听丶芒果鱼直播间时间切片弹幕.json”为例),具体要求如下:

    提取出所有弹幕类型(列表中的第1个元素)为”NM“的弹幕的内容(列表中的第4个元素)取出,存为一条弹幕为一行的txt格式文件。

    剔除弹幕中的不可见字符(包括制表符、换行符等)

    将弹幕中的所有英文字符转换为小写

    将弹幕中的所有全角字符转换为半角字符

    将弹幕中的所有繁体字转换为简体字

    将弹幕中大于等于4个的、连续的、相同的中文汉字合并为3个(例如将”啊啊啊啊啊啊“替换为”啊啊啊“)

    将弹幕中大于等于4个的、连续的、相同的英文字母或数字合并为3个(例如将”666666“替换为”666“)

    将弹幕中大于等于3个的、连续的、相同的标点符号合并为2个(例如将“???”替换为”??“)

    实现方法

    基于以上需求,我们逐个确定实现方法。

    剔除不可见字符

    根据对弹幕内容中包含的不可见字符的分析,我们主要需要剔除制表符(\t)、回车符(\r)和换行符(\n)。

    source = source.replace("\t", "").replace("\r", "").replace("\n", "")

    替换英文大小写

    将所有英文字符转换为小写只需要使用字符串自带的方法即可。

    source = source.upper()  # 将字符串中的英文全部转换为大写

    source = source.lower()  # 将字符串中的英文全部转换为小写

    将全角字符转换为半角字符

    我们遍历弹幕字符串中的每个字符,依据Unicode编码将全角字符转换为半角字符。

    def full_width_to_half_width(string):

    """ 将全角字符转化为半角字符

    :param string: 需要转化为半角的字符串

    :return: 转化完成的字符串

    """

    result = ""

    for uchar in string:

    inside_code = ord(uchar)

    if inside_code == 12288:  # 全角空格直接转换

    inside_code = 32

    elif 65281 <= inside_code <= 65374:  # 全角字符(除空格)根据关系转化

    inside_code -= 65248

    result += chr(inside_code)

    return result

    将繁体字转换为简体字

    因为繁简转换涉及到繁简分歧词等多种情况,所以我们不宜直接按字转换,而更应该按词转换。因此我们使用其他人造的轮子,通过HanLP的

    convertToSimplifiedChinese函数将弹幕字符串中的繁体字转换为简体字。

    from pyhanlp import HanLP

    source = HanLP.convertToSimplifiedChinese(source)

    合并连续相同的字符

    我们使用包含反向引用的正则表达式来匹配连续且相同的字符,又考虑到每个句子当前可能包含多个不同的连续且相同的字符,因此使用findall方法来进行匹配。

    反向匹配是指正则表达式中的"\1",“\1”可以用来指代第一个被“()”定义的子表达式。

    for chinese_character in re.findall(r"([\\u4e00-\\u9fa5])\1{3,}", source):

    source = re.sub("[" + chinese_character[0] + "]{3,}", chinese_character * 3, source)

    for chinese_character in re.findall(r"([A-Za-z])\1{3,}", source):

    source = re.sub("[" + chinese_character[0] + "]{3,}", chinese_character * 3, source)

    for chinese_character in re.findall(r"([0-9])\1{3,}", source):

    source = re.sub("[" + chinese_character[0] + "]{3,}", chinese_character * 3, source)

    (以上三个循环的正则表达式可以合并并简化为一个循环)

    类似的,连续且相同的标点符号的处理方法如下。

    PUNCTUATION_LIST = [" ", " ", ",", ",", ".", "。", "!", "?"]  # 样例标点符号列表

    punctuation_list = "".join(PUNCTUATION_LIST)

    for match_punctuation in re.findall("([" + punctuation_list + "])\\1{2,}", source):

    source = re.sub("[" + match_punctuation[0] + "]{2,}", match_punctuation * 3, source)

    source = re.sub("-{2,}", "---", source)  # 处理特殊的短横杠

    结果输出

    在完成弹幕内容的清洗后,我们可以将临时变量中的数据存储到文件中。

    with open("时间切片弹幕(清洗后).txt", "w+", encoding="UTF-8") as file:

    file.write("\n".join(barrage_list))

    展开全文
  • Python 数据清洗

    2020-07-09 17:23:27
    基于第三方库Numpy及Pandas 进行数据清洗 1. 查看数据 查看数据数据抽样整体概况字段解读数据形状判断数据规模 1.1. 数据抽样 查看前n条数据 : data.head(n) 默认前5条 查看后n条数据: data.tail(n) 默
  • 数据采集和数据清洗一、数据清洗1.数据去重(一)相关知识1> pandas读取csv文件-read_csv()2> pandas的去重函数-drop_duplicates()(二)本关任务(三)参考代码2.处理空值(一)相关知识1> DataFrame...
  • 整个过程最错综复杂的就是数据清洗工作,本次尝试着把之前遇到的数据清洗的一些步骤和方法做一个总结,并且随着以后的工作和学习不断完善。 1、数据预处理当我们导入一份数据后,我们需要对数据的大概有个了解。...
  • 正则表达式做数据清洗2.1 从网页HTML标签提取文本2.2 去掉英文文章标点符号,提取词汇2.3 提取以.com结尾的邮箱 1.常用正则表达式 Python常用正则表达式 2.正则表达式做数据清洗 2.1 从网页HTML标签提取文本...
  • 数据科学家们会花费大量的时间来清理数据集,毫不夸张地说,数据清洗会占据他们80%的工作时间,而真正用来分析数据的时间只占到20%左右。所以,数据清洗到底是在清洗些什么?通常来说,你所获取到的原始数据不能直接...
  • 这篇文章主要介绍了python数据清洗之字符串处理的相关资料,需要的朋友可以参考下前言数据清洗是一项复杂且繁琐(kubi)的工作,同时也是整个数据分析过程最为重要的环节。有人说一个分析项目80%的时间都是在清洗数据...
  • 文章目录python数据采集7-数据清洗数据清洗编写代码清洗数据数据标准化数据存储后再清洗 python数据采集7-数据清洗 数据清洗 到目前为止,我们还没有处理过那些样式不规范的数据,要么是使用样式规范的数据源, 要么...
  • pandas-数据清洗

    2021-05-09 15:56:28
    目录 01 | 数据清洗常用方法 01 | 数据清洗常用方法
  • 爬虫数据清洗之html标签的清洗

    千次阅读 2019-07-08 11:54:52
    我们平常爬取数据时,会经常有多余的html便签,下面我们就来清洗一下这些标签: 1,只清洗标签,可以用正则,也可以用remove(),remove_tags()函数 正则清洗: import re html='<p class="txt" node-type=...
  • python之清洗数据

    千次阅读 2018-04-30 14:06:58
    python之清洗数据背景介绍: 清洗数据: 大概意思就是由于错误的标点符号、大小写字母不一致、断行和拼写错误等问题,零乱的数据(dirtydata),然后我们通过改变代码的编写方式,从源头控制数据零乱的问题甚至对...
  • Python数据清洗笔记

    2019-08-16 17:50:08
    场景一:仅仅需要清洗去除头尾的字符的字符串 【方法】:使用strip()方法。 【案例】: >>> str = '\n\xa0\xa0\xa0\xa0\t 较为干净 的数据 \t\n\xa0\xa0\xa0\xa0 ' >>> str.strip('\xa0 \n\t') /...
  • Data Cleaning and Preparation 数据清洗和准备 修改之后,增加代码,注释 xiaoyao # 导入package import numpy as np import pandas as pd # 设置数据显示行数 PREVIOUS_MAX_ROWS = pd.options.display.max_rows pd...
  • 常用的数据清洗方法有:字符串操作、正则表达式和第三方库。 常用数据清洗的字符串操作有截取、替换、查找和分割。 截取:str[开始位置 : 结束位置 : 间隔位置] #默认开始位置为0# 替换:str.replace('被替换的...
  • 文章目录数据获取数据清洗 数据获取 数据清洗
  • 上手Pandas,带你玩转数据(4)-- 数据清洗

    千次阅读 多人点赞 2021-04-07 21:35:36
    在讲数据清洗之前,我想先讲一些描述性的方法。不然后面讲清洗的时候会有点突兀。 哪个不会用呢? 那来个示例看一下: df = pd.DataFrame(d) print(df.std()) 伪代码,仅供参考。 汇总数据 describe()函数是用来...
  • 数据分析师招聘数据清洗实战数据导入并查看重复数据处理异常值处理缺失值处理 数据是数据分析师的招聘薪资,主要内容是进行数据读取,数据概述,数据清洗和整理 数据获取:链接:...
  • python数据清洗(四)

    千次阅读 2018-12-10 17:54:35
    第四部分 清洗数据进行分析 深入了解数据清理的一些重要方面。 学习字符串操作和模式匹配以处理非结构化数据,然后探索处理丢失或重复数据的技术。 学习以编程方式检查数据的一致性的技能,用以确信代码正确运行并且...
  • 数据清洗及简单分析

    2019-08-07 19:49:50
    数据分析案例分享,仅供学习使用,数据量比较...数据清洗 先分析下目标文件 共172条数据, 需要处理 工作经验:不限设置为0,例:1-3年 取(1+3)/2即1.5年 工资:按实际情况区间前25%比较合理,例:10K-15K,取11....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,010
精华内容 2,404
关键字:

数据清洗中find