对数据进行评估和理解(在notebook中进行)
import pandas as pd
yimiao=pd.read_csv('shanghai.csv',index_col='name') # 索引
#yimiao.to_csv('yimiao1.csv') # 写入csv文件
print(df.dtypes) # 返回列的数据类型
print(df.shape) # 返回 dataframe 维度的元组(n行m列)
print(df.info) # 显示 dataframe 的简明摘要,包括每列非空值的数量
print(df.describe) # 返回每列数据的有效描述性统计
type(df['year'][0]) # 供诊断的数据类型是对象,但进一步的调查显示,它是int64类型
一. 对数据进行索引:
for i, v in enumerate(yimiao.columns): # 查看每列的索引号和标签
print(i, v)
使用 loc 和 iloc 选择数据:
loc主要是基于标签的,但也可以与布尔数组一起使用。当找不到物品时.loc会提高KeyError。
df_means = df.loc[:,'year':] # 使用标签进行索引 ,查看year这一列的数据
df_means.head()
iloc是基于主要的整数位置(从0到 length-1所述轴的),但也可以用布尔阵列使用。 如果请求的索引器超出范围,.iloc则会引发IndexError,但允许越界索引的切片索引器除外。
df_means = yimiao.iloc[:,:12] # 按位置索引
df_means.head()
二. 对查看缺失值的所在的列(由Ture或者False判断)
df.isnull() # 缺失值的所有数据
#df.isnull().any() # 显示缺失值所在的列
三. 查看每一列的数据的具体情况
df.info()
df_unique= df.loc[:,'education'] # 查看education这一列数据的唯一值
df_unique.unique()
df_means=df.loc[:,'age'] #求年龄的平均值
df_means.mean()
数据清理
一. 缺失值的填补
以平均值为例:
# 用 info() 检查哪些列有缺失值
df.info()
# 用均值填充缺失值
mean1=df['texture_mean'].mean
df['texture_mean']=df['texture_mean'].fillna(mean1)
# 用 info() 确认修改
df.info()
二. 重复数据的清理
# 检查数据中的重复
df.duplicated()
sum(df.duplicated())
# 丢弃重复
df.drop_duplicates(inplace=True)
三. 数据类型错误
将数据类型进行转化:
df[‘xxxxxx’]=pd.to_datetime([‘xxxxxx’])