• 数据清洗记录2


    爬虫爬下来的数据,有个字段含有大量脏数据,如图1所示,现在需要提取出“红色框”中的“作者机构名称”。

    一开始用的excel,替换、分类、按照模式的快速填充各种都用上了,但是,数据量太大了(有上万条,辛苦机器性能还行)而且你懂得,人工操作肯定有误操作而且分列啥的这些功能适应新不怎么强,结果,弄了小半天终于完整地清洗完毕。

    下文提供两种方法:1、excel中清洗;2、pandas+正则表达式

     

    图1


    图2

    方法1:

        略过

    方法2:

    pandas 凭借其强大的能力,分分钟处理完毕,而且没有任何小问题。

    #代码如下:
    
    __author__ = 'Oscar_Yang'
    
    # -*- coding= utf-8 -*-
    
    import re
    
    import pandas as pd
    
    path=r"C:UsersOscarDesktop1.xlsx"
    
    path1=r"C:UsersOscarDesktop2.xlsx"
    
    xls_file=pd.ExcelFile(path)
    
    table=xls_file.parse("Sheet1")
    
    #或者table=pd.read_excel(path)
    
    s1=table.jigou.fillna("Missing")
    
    # print(s1)
    
    # print(table)
    
    def get_clean_table(a):
    
        p = re.compile("[.*?,")
    
        c = [x.split(",")[0] for x in p.findall(a)]
    
        return c
    
    a=s1.apply(get_clean_table)
    
    new_frame=pd.DataFrame(a)
    
    # print(a)
    
    writer = pd.ExcelWriter(path1)
    
    new_frame.to_excel(writer,'Sheet1')
    
    writer.save()

    图3 处理结果

  • 相关阅读:
    Finder 的分栏显示模式宽度调整
    IBAction作用相当于void,NSLog(@"被调用的方法名是%s",__func__);
    Trapping Rain Water
    Binary Tree Preorder Traversal
    Valid Parentheses
    Reverse Words in a String | LeetCode OJ | C++
    Gas Station|leetcode 贪心
    两个字符串“相等”
    Binary Tree Zigzag Level Order Traversal
    Add Binary
  • 原文地址:https://www.cnblogs.com/coskaka/p/6107646.html
Copyright © 2020-2023  润新知