精华内容
下载资源
问答
  • 一、概念Nan:Not a numberInf:Infinity(无穷大)当然容易搞混的还有None,None是python中用于标识空缺数据,Nan是nunpy和pandas中用于标识空缺数据,None是一个python特殊的数据类型, 但是NaN却是用一个特殊的...

    首先声明:写这些文章的目的主要是给自己一个梳理消化网络查询所得知识的过程,如果能帮到其他用户,那就更好了。

    一、概念

    Nan:Not a number

    Inf:Infinity(无穷大)

    当然容易搞混的还有None,None是python中用于标识空缺数据,Nan是nunpy和pandas中用于标识空缺数据,None是一个python特殊的数据类型, 但是NaN却是用一个特殊的float,此处我仅针对Nan和Inf的处理。

    二、Nan、Inf处理(以Nan为主,Inf可以借鉴相应方法)

    1、找到Nan和Inf的行、列

    其关键是通过where方法和isnan方法。

    df = pd.DataFrame(np.arange(24).reshape(4,6), index=list('abcd'), columns=list('xyzuvw'))

    Output:

    x y z u v w

    a 0 1 2 3 4 5

    b 6 7 8 9 10 11

    c 12 13 14 15 16 17

    d 18 19 20 21 22 23

    # 将df的第一列变成NaN

    df.x = np.nan

    Output:

    x y z u v w

    a NaN 1 2 3 4 5

    b NaN 7 8 9 10 11

    c NaN 13 14 15 16 17

    d NaN 19 20 21 22 23

    np.where(np.isnan(df))

    #得到结果,是一个tuple,前面array是横坐标,后面的array是纵坐标。

    Output:

    (array([0, 1, 2, 3], dtype=int64), array([0, 0, 0, 0], dtype=int64))

    2、数据处理

    (1)数据替换

    关键还是isnan方法,得到Nan值的索引。

    df=df[np.isnan(df)]=2

    #所得结果如下

    Output:

    x y z u v w

    a 2.0 1 2 3 4 5

    b 2.0 7 8 9 10 11

    c 2.0 13 14 15 16 17

    d 2.0 19 20 21 22 23

    (2)删除相关数据

    如果Nan所在数据行或列不影响整体数据分析,可以考虑去除相应行和列。

    主要思路是通过isnan函数获得nan所在索引,通过where函数将其转成tuple形式,,再通过delete函数将所在行删除。

    #create testing data

    x=np.arange(0,24).reshape(4,6)

    x=np.array(x,dtype=float)

    x[2,3]=np.nan

    x[0,4]=np.nan

    print(x)

    Output:

    [[ 0. 1. 2. 3. nan 5.]

    [ 6. 7. 8. 9. 10. 11.]

    [12. 13. 14. nan 16. 17.]

    [18. 19. 20. 21. 22. 23.]]

    #delete rows which have nan

    x1=np.delete(x,np.where(np.isnan(x))[0],axis=0))

    print(x1)

    Output:

    [[ 6. 7. 8. 9. 10. 11.]

    [18. 19. 20. 21. 22. 23.]]

    展开全文
  • 高效删除python列表中nan

    千次阅读 2020-04-03 22:21:11
    你是否还在为列表中的nan而苦恼,跟随我的脚步,两步告别万千烦恼丝。 import numpy as np list_test = ['a', 'b', ...while np.nan in list_test: list_test.remove(np.nan) print(list_test) var foo = 'bar'; ...

    你是否还在为列表中的nan而苦恼,跟随我的脚步,两步告别万千烦恼丝。

    import numpy as np
    
    list_test = ['a', 'b', 'c', np.nan]
    print(list_test)
    
    while np.nan in list_test:
        list_test.remove(np.nan)
    
    print(list_test)
    

    下面一起见证奇迹

    在这里插入图片描述

    展开全文
  • Python如何除去NaN

    千次阅读 2019-07-14 22:03:42
    Python如何除去NaN1.使用dropna()2.使用fillna()3.使用add以及fill_value 1.使用dropna() 2.使用fillna() 3.使用add以及fill_value import pandas as pd s1 = pd.Series( [1, 2, 3, 4], index = ['a', 'b', 'c', 'd'...

    1.使用dropna()

    2.使用fillna()

    3.使用add以及fill_value

    import pandas as pd
    s1 = pd.Series( [1, 2, 3, 4],  index = ['a', 'b', 'c', 'd'])
    s2 = pd.Series([10, 20, 30, 40], index = ['c', 'd', 'e', 'f'])
    print(s1 + s2)
    
    (s1 + s2).dropna()
    (s1 + s2).fillna(0)
    s1.add(s2, fill_na = 0)
    
    展开全文
  • I have a list that countain values, one of the values I got is 'nan'countries= [nan, 'USA', 'UK', 'France']I tried to remove it, but I everytime get an errorcleanedList = [x for x in countries if (mat...

    I have a list that countain values, one of the values I got is 'nan'

    countries= [nan, 'USA', 'UK', 'France']

    I tried to remove it, but I everytime get an error

    cleanedList = [x for x in countries if (math.isnan(x) == True)]

    TypeError: a float is required

    When I tried this one :

    cleanedList = cities[np.logical_not(np.isnan(countries))]

    cleanedList = cities[~np.isnan(countries)]

    TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

    解决方案

    The question has changed, so to has the answer:

    Strings can't be tested using math.isnan as this expects a float argument. In your countries list, you have floats and strings.

    In your case the following should suffice:

    cleanedList = [x for x in countries if str(x) != 'nan']

    Old answer

    In your countries list, the literal 'nan' is a string not the Python float nan which is equivalent to:

    float('NaN')

    In your case the following should suffice:

    cleanedList = [x for x in countries if x != 'nan']

    展开全文
  • 链接:从Python列表中删除Nan值-python黑洞网 问题:为什么这不起作用吗?我试图从我的python列表/数组中删除nan值。 import math import numpy as np def clean_List_nan(List): Myarray=np.array(List) x = ...
  • Is it possible to calculate the median of a list without explicitly removing the NaN's, but rather, ignoring them?I want median([1,2,3,NaN,NaN,NaN,NaN,NaN,NaN]) to be 2, not NaN.解决方案numpy 1.9.0 ...
  • dictionary in python:OrderedDict([(30, ('A1', 55.0)), (31, ('A2', 125.0)), (32, ('A3', 180.0)), (43, ('A4', nan))])Is there a way to remove the entries where any of the values is NaN?...
  • python删除列表中的nan

    万次阅读 2020-06-01 10:22:22
    nan的性质和删除方法
  • 今天小编就为大家分享一篇Python Numpy:找到list中的np.nan值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • pythonnan值判断与处理

    千次阅读 2019-11-08 18:49:58
    np.isnan(df).sum() #获得nan的数量 np.isinf(df).sum() #获得infinity的数量 df.isnull().any() #判断哪些”列”存在缺失值 df[df.isnull().T.any().T] #找出含有nan的所有行 空置处理 填充 #空值处理方式 ...
  • Python List 操作笔记

    2021-09-15 10:05:07
    本文记录了一些python语言中对list操作的方法,目前有集合运算、数据类型转换、数学矩阵运算等,笔者会不断更新
  • python dataframe NaN处理方式将dataframe中的NaN替换成希望的值import pandas as pddf1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}])df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':...
  • python 判断为空nan, null;np.newaxis

    千次阅读 2019-04-12 19:09:25
    python 判断为空nan, null pandas 空值定义为numpy.nan 对整体的series或Dataframe判断是否未空,用isnull() eg: pd.isnull(df1) #df1是dataframe变量 对单独的某个值判断,可以用 np.isnan() ...
  • Python笔记:在Pandas中处理NaN

    万次阅读 多人点赞 2018-08-03 23:49:31
    关于NaN值 -在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据, 也就是说,我们需要通过某个方法检测并更正数据中的错误。 - 任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,...
  • import yaml ...def filter_nan(pcd_path): cloud = pcl.load_XYZI(pcd_path) pt = cloud.to_array()[:, :4] #### filter NAN points t=[] for n in range(0, len(pt)): x = pt[n][0] y = p
  • 这是 [python中dataframe常见操作:取行、列、切片、统计特征值]的延续(https://blog.csdn.net/tanlangqie/article/details/78656588). ```javascript // An highlighted block var foo = 'bar'; ```
  • 删除DataFrame中值全为NaN或者包含有NaN的列或行? - erinapple的博客 - CSDN博客 https://blog.csdn.net/erinapple/article/details/80729726 删除pandas.DataFrame 中包含NaN的行或列 - 天的那边 - CSDN博客...
  • pandas指定某一列删除nan

    千次阅读 2020-12-10 18:44:08
    需求如下 有以下表格,除了用布尔过滤法 还没有其他方法可以快速过滤TC_ID这列为空时,就删掉整行?
  • 正如之前提到的,在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据。也就是说,我们需要通过某个方法检测并更正数据中的错误。虽然任何给定数据集...# We create a list of Python dictionaries items
  • 我的input.csv看起来是这样的: day,month,year,lat,long01,04,2001,45.00,120.0002,04,2003,44.00,118.00 我试图删除“year”栏及其所有条目。 总共有40多个条目,从1960年到2010年不等...我有以下标...
  • /usr/bin/env python# encoding: utf-8#@author: 东哥加油!#@file: del_tb_bigtable_statistic.py#@time: 2018/11/21 15:39import pymysqlimport datetimeimport mathimport time#获取连接def get_conn():conn = ...
  • 先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python。最好就是一句python,对应写一句R。 pandas可谓如雷贯耳,数据处理神器。 以下符号: =R= 代表着在R中代码是怎么样的。 ...
  • # 默认是删除NaN的行 print df.dropna() # col1 col2 col3 # 1 1.944899 -1.792510 -0.612904 # 5 -0.609380 1.087689 -1.145582 # 7 -2.045037 1.043837 0.429135 print df.dropna(how='all') #删除全部是NaN的...
  • 我们从网上下载的批量excel文件中,有时候这些文件的第一行是广告信息,我们可以利用python批量删除第一行,并且保存文件。由于程序涉及大量的IO操作,我们可以使用多线程进行操作。 简介 get_all_excel(path): ...
  • root.remove(obj) # 删除掉有问题的box elif bbox[3] > h or bbox[2] > w: bnd_box.find("xmax").text = str(min(w, bbox[2])) bnd_box.find("ymax").text = str(min(h, bbox[3])...
  • df = pd.DataFrame(np.arange(12).reshape(4, 3), index=list('abcd'), columns= list('xyz')) df.iloc[1:3, 0:2] = np.nan # 特意设置几个nan值 df.iloc[2, 2] = np.nan axis=1 按列,含有nan值的列被删除。...
  • In the article, Python scripts to format data in Microsoft Excel, we used Python scripts for creating an excel and do various data formatting. Python is an interesting high-level programming langu...
  • 2,3],[4,5,6],[7,8,9]])df1=pd.DataFrame(a,index=['row0','row1','row2'],columns=list('ABC'))print(df1)df2=df1.copy()#删除/选取某列含有特定数值的行#...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,802
精华内容 3,120
关键字:

pythonlist删除nan

python 订阅