Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何以智能方式删除数据帧中的空副本?_Python_Pandas_Duplicates_Dataset_Data Cleaning - Fatal编程技术网

Python 如何以智能方式删除数据帧中的空副本?

Python 如何以智能方式删除数据帧中的空副本?,python,pandas,duplicates,dataset,data-cleaning,Python,Pandas,Duplicates,Dataset,Data Cleaning,我有一个很大的数据集。它缺少一些数据。数据集包含类型为string(对于名称等列)和float(对于高度等列)的变量。此数据集中的某些行只是缺少数据的重复行(有时带有后缀号)。我想做的是删除空的副本,保留有数据的副本(有时同一个人可以有两行不同的数据,但这没关系,我想这样保留) 需要知道的一件重要事情是,虽然我将字符串类型列中的空值更改为np.nan,但在float类型列中,空VAL由-99.0表示。顺便问一下,是否将其设置为-1而不是-99.0?还是没有区别?我稍后将在机器学习模型中使用它 因

我有一个很大的数据集。它缺少一些数据。数据集包含类型为
string
(对于名称等列)和
float
(对于高度等列)的变量。此数据集中的某些行只是缺少数据的重复行(有时带有后缀号)。我想做的是删除空的副本,保留有数据的副本(有时同一个人可以有两行不同的数据,但这没关系,我想这样保留)

需要知道的一件重要事情是,虽然我将字符串类型列中的空值更改为
np.nan
,但在
float
类型列中,空VAL由
-99.0
表示。顺便问一下,是否将其设置为
-1
而不是
-99.0
?还是没有区别?我稍后将在机器学习模型中使用它

因此,我的解决方案是:

  • 编写一个函数,给定两行索引,返回其中包含更多数据的那一行的索引,如果它们都填充了数据,则同时返回这两行
  • 编写另一个函数遍历数据集,并(使用前面的函数)比较重复项并删除空项
  • 但问题是,这对我来说需要相当多的编码,而且这似乎不是一个真正明智的方法(我知道可能有更好的方法)。更不用说我在用自己的方式做事时遇到的可怕的虫子了


    不管怎样,你们知道更好的方法吗?甚至不一定是代码,只是一个如何更有效地完成它的想法。提前感谢。

    如果您只想删除带有空“NaN”值的列,请运行此命令

    df.dropna(subset = ["column_with_empty_NaNs"], inplace=True)
    
    如果要删除包含任何空单元格的行

    df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
    
    df.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)
    
    如果要删除包含所有空单元格的行

    df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
    
    df.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)
    

    如果只想删除具有空“NaN”值的列,请运行以下命令

    df.dropna(subset = ["column_with_empty_NaNs"], inplace=True)
    
    如果要删除包含任何空单元格的行

    df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
    
    df.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)
    
    如果要删除包含所有空单元格的行

    df.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
    
    df.dropna(axis=0, how='all', thresh=None, subset=None, inplace=False)
    

    链接到
    dropna()
    函数的参考:链接到
    dropna()
    函数的参考: