当前位置:   article > 正文

【人工智能】数据清洗和预处理_人工智能进行数据清洗分类开发

人工智能进行数据清洗分类开发

预备知识

读取csv文件:

df = pd.read_csv("song_origin.csv")
  • 1

pandas选择行或列

选择列

  • 通过列名选择:
    选择名为’column_name’的列

    column_data = df['column_name']  
    
    • 1
  • 通过列名列表选择:

     subset_df = df[['column1', 'column2', 'column3']]
    
    • 1
  • 通过列的位置选择(使用iloc):
    选择第1列和第3列(索引从0开始)

    subset_df = df.iloc[:, [0, 2]]
    
    • 1

选择行

选择索引为’index_name’的行

row_data = df.loc['index_name']  
  • 1

选择多个行(返回一个DataFrame)

subset_df = df.loc[['index1', 'index2', 'index3']]
  • 1

选择第1行和第3行(索引从0开始)

subset_df = df.iloc[[0, 2]]
  • 1

选择’some_column’列值大于some_value的行

subset_df = df[df['some_column'] > some_value]
  • 1

一 处理数据的缺失值

缺失值的填充策略有很多。
除了在fillna()方法中利用method()方法来指导填充,我们还可以自定义一些填充策略。比如,对于数值型空缺,我们可以使用众数、均值、中位数填充。对于具备时间序列特征的空缺,我们可以使用插值(interpolation)方式来填充。插值是一种离散函数逼近的重要方法,它可通过拟合函数在有限个点处的取值状况,估算出函数在其他点(缺失值)处的近似值。如果是分类数据(即标签)缺失,一种填充策略就是用最常见的类别来填充空缺处,这类似于众数填充。当然,如果在特征参数很完备的情况下,还可以用模型来预测缺失值,然后填充。

① 处理数据集中的缺失值,对于数据集中的缺失值,以其所在列的均值进行填充:

df.fillna(df.mean(),inplace=True)
  • 1

用每一列的均值来替换DataFrame df 中的所有缺失值,并且这个更改会直接在原始的DataFrame上进行。

inplace=True: 这个参数意味着更改将直接应用于原始的DataFrame df,而不是创建一个新的DataFrame。如果你没有设置inplace=True,那么原始的df将保持不变,默认为False,并且fillna()将返回一个新的、填充了缺失值的DataFrame。

二 处理数据的异常值

② 处理数据集中的异常值,对于 acousticness_yr 列的值大于 1 或小于 0 的进行删除:

df = df.drop(df[(df['acousticness_yr'] >1)|(df['acousticness_yr'] < 0)].index)
  • 1

三 处理数据的重复行

③ 处理数据集中的重复行,对于数据集中出现多行的相同数据,只保留一行,删除其余重复行:

df = df.drop_duplicates() 
  • 1

如果只想根据 ‘column1’ 和 ‘column2’ 列来删除重复项,你可以:

df = df.drop_duplicates(subset=['column1', 'column2'])
  • 1

四 将DataFrame的内容导出到CSV

与read_csv()功能相反的是,to_csv()会将内存数据以CSV格式写入磁盘中保存。

df.to_csv('songs_processed.csv',index=False)
  • 1

通过设置 index=False,在导出到CSV文件时不包含索引列

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/897692
推荐阅读
相关标签
  

闽ICP备14008679号