pandas数据集的端到端处理
本文详细介绍利用pandas进行数据集端到端处理的流程,涵盖从基本信息查看、统计分析及直方图绘制,到数据集拆分、分类特征转换及缺失值填充等关键步骤。通过具体代码示例,帮助读者掌握数据清洗与预处理的核心技巧。
1. 数据集基本信息
df = pd.read_csv()
使用 df.head() 可以查看数据的前五行,以便快速了解数据结构。
df.info() 用于获取数据框的整体信息概览。
- RangeIndex 表示行索引信息;
- Data columns 显示列索引及非空值数量;
- Dtypes 列出各列的数据类型,
- 主体部分展示各列的基本统计情况,例如可以通过此信息判断是否存在 NaN 缺失值;
针对非数值型的属性列,
- 可以使用 df['some_categorical_columns'].value_counts() 来查看取值分布情况;
df.describe() 提供各个数值列的基本统计信息。
- count:非空值计数
- mean:平均值
- std:标准差
- min/max:最小/最大值
- 25%, 50%, 75%:分别对应第25、50(中位数)、75百分位数
df.hist(bins=50, figsize=(20, 15)) 用于生成统计直方图;
该操作会对 df 中的每一列进行可视化展示:
train_prices = pd.DataFrame({'price': train_df.SalePrice,
'log(price+1)': np.log1p(train_df.SalePrice)})
# train_prices 共两列,一列列名为 price,一列列名为 log(price+1)
train_prices.hist()
2. 数据集拆分
def split_train_test(data, test_ratio=.3): shuffled_indices = np.random.permutation(len(data)) test_size = int(len(data)*test_ratio) test_indices = shuffled_indices[:test_size] train_indices = shuffled_indices[test_size:] return data.iloc[train_indices], data.iloc[test_indices]
3. 数据预处理
- 实现一键将 categorical 类型特征(字符串类型)转化为数值型编码:
>> df['label'] = pd.Categorical(df['label']).codes
- 实现一键将 categorical 类型特征(字符串类型)转化为 one-hot 独热编码:
>> df = pd.get_dummies(df)
- null 值统计与填充处理:
>> df.isnull().sum().sort_values(ascending=False).head() # 填充为 mean 值 >> mean_cols = df.mean() >> df = df.fillna(mean_cols) >> df.isnull().sum().sum() 0
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。如果你想了解更多相关内容请查看下面相关链接
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









