• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Pandas剔除混合数据中非数字的数据操作

    我们日常拿到的数据,指标字段有时会混入非数字的数据,这时候会影响我们的操作

    name height
    Hang 180
    Ben 145
    Cho notknow
    XIn 189

    比如read_csv读入时,该列会以object形式读入,也不能直接进行计算,不然会出现如unsupported operand type(s) for +: 'float' and 'str'的错误

    这时候就需要进行数据预处理,清除掉指标值中非数字的数据,这里我以2012_FederalElectionCommission_Database数据为例。

    首先读入数据,可以发现提示:Columns (6) have mixed types,这里Columns (6)是指标值混有字符串格式数据

    fec = pd.read_csv('P00000001-ALL.csv')
    D:\SOFTWARE\Anaconda\lib\site-packages\IPython\core\interactiveshell.py:2717: DtypeWarning: Columns (6) have mixed types. Specify dtype option on import or set low_memory=False.
     interactivity=interactivity, compiler=compiler, result=result)
    #先使用str打开数据
    fec = pd.read_csv('P00000001-ALL.csv',dtype={'contbr_zip':str})
     
    #然后使用str函数isdigit()判断单元格是否全为数字
     
    fec_isnum=fec.iloc[:,6].str.isdigit()
     
    #得到使用bool索引把全为数字的表格cleaned
     
    cleaned = fec[fec_isnum].copy()

    补充:pandas如何去掉、过滤数据集中的某些值或者某些行?

    在进行数据分析与清理中,我们可能常常需要在数据集中去掉某些异常值。具体来说,看看下面的例子。

    0.导入我们需要使用的包

    import pandas as pd

    pandas是很常用的数据分析,数据处理的包。anaconda已经有这个包了,纯净版python的可以自行pip安装。

    1.去掉某些具体值

    数据集df中,对于属性appPlatform(最后一列),我们想删除掉取值为2的那些样本。

    如何做?非常简单。

    import pandas as pd
    df[(True-df['appPlatform'].isin([2]))]

    当然,有时候我们需要去掉不止一个值,这个时候只需要在isin([])的列表中添加。更具体来说,例如,对于appID这个属性,我们想去掉appID=278和appID=382的样本。

    df[(True-df['appID'].isin([278,382]))]

    另外,我们有时候并不只是考虑某一列,还需要考虑另外若干列的情况。例如,我们需要过滤掉appPlatform=2而且appID=278和appID=382的样本呢?非常简单。

    df[(True-df['appID'].isin([278,382]))(True-df['appPlatform'].isin([2]))]

    其实,在这里我们看到,就是由两部分组成的,第一部分就是appID中等于278和382的,另外一部分就是appPlatform中等于2的。两者取逻辑关系 与()

    2.过滤掉某个范围的值

    上面我们是了解了如何取掉某个具体值,下面,我们要看看如何过滤掉某个范围的值。

    对于数据集df,我们想过滤掉creativeID(第一列)中ID值大于10000的样本。

    df[df['creativeID']=10000]

    另外,如果要考虑多列的话,其实和上面一样,将两种情况做逻辑与()就可以,不过值得注意的是,每个条件要用括号()括起来。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • pandas中的数据去重处理的实现方法
    • 详解pandas删除缺失数据(pd.dropna()方法)
    • python pandas消除空值和空格以及 Nan数据替换方法
    上一篇:Python三十行代码实现简单人脸识别的示例代码
    下一篇:PIP安装python包出现超时问题的解决
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Pandas剔除混合数据中非数字的数据操作 Pandas,剔除,混合,数据,中非,