pandas数据集的端到端处理

Finn
Finn
发布时间:2026-10-13 | 5人浏览过
原创

本文详细介绍利用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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。如果你想了解更多相关内容请查看下面相关链接

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表