提出问题
整理数据(wrangling)
1 获取数据(gathering)
#指定index
df_cancer = pd.read_csv('cancer_data.csv',index_col='id')
#指定colunms
labels = ['id', 'name', 'attendance', 'hw', 'test1', 'project1', 'test2', 'project2', 'final']
df = pd.read_csv('student_scores.csv', names=labels)
2 评估数据(assess)
df.shape
df.describe()
df.info()
#选择范围
df.iloc[:,np.r_[0,1,12:22]]
3 清理数据(cleaning)
- 缺失数据(missing data)
#查看缺失
df.info()
#均值填充
df['texture_mean'].fillna(df['texture_mean'].mean(),inplace=True)
- 冗余数据(duplicate data)
#查看重复
sum(df.duplicated())
# 丢弃重复
df.drop_duplicates(inplace = True)
其他情况设置duplicated(),drop_duplicates()中的subset参数
- 错误数据结构(incorrect data types)
#时间类型object变为datetime
df['timestamp'] = pd.to_datetime(df['timestamp'])
探索性数据分析(EDA)
这里仅使用pandas自带的函数作图,支持Series和DataFrame格式数据
#绘制直方图
df.hist(figsize=(8, 8));
df.plot(kind='hist');
# ;是为了隐藏一些不必要的内容
#绘制柱状图
df['education'].value_counts.plot(kind='bar');
#绘制饼图
df['workclass'].value_counts.plot(kind='pie',figsize=(8, 8));
#混合散点图
pd.plotting.scatter_matrix(df,figsize=(8, 8));
#单独的散点图
df.plot(x='', y='',kind='scatter');
#箱型图
df[''].plot(kind='box')
结论
- 机器学习
- 推断统计学
- 描述统计学
传达结果
- 数据可视化:dj3等
- 文档报告等