赞
踩
df = pd.read_csv("song_origin.csv")
通过列名选择:
选择名为’column_name’的列
column_data = df['column_name']
通过列名列表选择:
subset_df = df[['column1', 'column2', 'column3']]
通过列的位置选择(使用iloc):
选择第1列和第3列(索引从0开始)
subset_df = df.iloc[:, [0, 2]]
选择索引为’index_name’的行
row_data = df.loc['index_name']
选择多个行(返回一个DataFrame)
subset_df = df.loc[['index1', 'index2', 'index3']]
选择第1行和第3行(索引从0开始)
subset_df = df.iloc[[0, 2]]
选择’some_column’列值大于some_value的行
subset_df = df[df['some_column'] > some_value]
缺失值的填充策略有很多。
除了在fillna()方法中利用method()方法来指导填充,我们还可以自定义一些填充策略。比如,对于数值型空缺,我们可以使用众数、均值、中位数填充。对于具备时间序列特征的空缺,我们可以使用插值(interpolation)方式来填充。插值是一种离散函数逼近的重要方法,它可通过拟合函数在有限个点处的取值状况,估算出函数在其他点(缺失值)处的近似值。如果是分类数据(即标签)缺失,一种填充策略就是用最常见的类别来填充空缺处,这类似于众数填充。当然,如果在特征参数很完备的情况下,还可以用模型来预测缺失值,然后填充。
① 处理数据集中的缺失值,对于数据集中的缺失值,以其所在列的均值进行填充:
df.fillna(df.mean(),inplace=True)
用每一列的均值来替换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)
③ 处理数据集中的重复行,对于数据集中出现多行的相同数据,只保留一行,删除其余重复行:
df = df.drop_duplicates()
如果只想根据 ‘column1’ 和 ‘column2’ 列来删除重复项,你可以:
df = df.drop_duplicates(subset=['column1', 'column2'])
与read_csv()功能相反的是,to_csv()会将内存数据以CSV格式写入磁盘中保存。
df.to_csv('songs_processed.csv',index=False)
通过设置 index=False,在导出到CSV文件时不包含索引列。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。