数据源:
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris = pd.read_csv(url)
iris.head()
Out[50]:
5.1 3.3 1.4 0.2 Iris-setosa
0 4.9 3.0 1.4 0.2 Iris-setosa
1 4.7 3.2 1.3 0.2 Iris-setosa
2 4.6 3.1 1.5 0.2 Iris-setosa
3 5.0 3.6 1.4 0.2 Iris-setosa
4 5.4 3.9 1.7 0.4 Iris-setosa
- 修改列名:
1)常规方法
iris.columns = ['sepal_length','sepal_width', 'petal_length', 'petal_width', 'class']
2) 推荐方法
iris.rename(columns = {'sepal_length':'sep_len','sepal_width':'sep_wid', 'petal_length':'pet_len', 'petal_width':'pet_wid', 'class':'cla'},inplace=True)`
- 缺失值判断:
1) iris.isnull().sum()
2) pd.isnull(iris).sum()
iris.isnull().sum()
Out[55]:
sep_len 0
sep_wid 0
pet_len 0
pet_wid 0
cla 0
dtype: int64
pd.isnull(iris).sum()
Out[56]:
sep_len 0
sep_wid 0
pet_len 0
pet_wid 0
cla 0
dtype: int64
- 设置缺失值
iris.ix[10:29,'pet_len'] = np.NaN
__main__:1: DeprecationWarning:
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
iris.isnull().sum()
Out[58]:
sep_len 0
sep_wid 0
pet_len 20
pet_wid 0
cla 0
dtype: int64
- 填充缺失值
iris.fillna(1.0,inplace=True)
iris.fillna(1.0,inplace=True)
iris.head(20)
Out[60]:
sep_len sep_wid pet_len pet_wid cla
0 4.9 3.0 1.4 0.2 Iris-setosa
1 4.7 3.2 1.3 0.2 Iris-setosa
2 4.6 3.1 1.5 0.2 Iris-setosa
3 5.0 3.6 1.4 0.2 Iris-setosa
....
17 5.7 3.8 1.0 0.3 Iris-setosa
18 5.1 3.8 1.0 0.3 Iris-setosa
19 5.4 3.4 1.0 0.2 Iris-setosa
- 删除column
iris.drop(‘cla’, axis=1,inplace=True) # axis=1/0 不能少
iris.drop('cla', axis=1,inplace=True)
iris.head()
Out[63]:
sep_len sep_wid pet_len pet_wid
0 4.9 3.0 1.4 0.2
1 4.7 3.2 1.3 0.2
2 4.6 3.1 1.5 0.2
3 5.0 3.6 1.4 0.2
4 5.4 3.9 1.7 0.4
- 滤除缺失值
iris.dropna(thresh=3) # 非NA值低于3个的行删除
iris.dropna(how=’any’,inplace=True) # 参数 how = ‘any’ 有1个缺失值的行就删除
iris.dropna(axis=1, how=’all’) # 良好习惯,axis=1/0时刻保持关注
iris.iloc[:3,:] = np.NaN
iris.dropna(how='any', inplace=True)
iris.head()
Out[76]:
sep_len sep_wid pet_len pet_wid
3 5.0 3.6 1.4 0.2
4 5.4 3.9 1.7 0.4
5 4.6 3.4 1.4 0.3
6 5.0 3.4 1.5 0.2
7 4.4 2.9 1.4 0.2
- 重置索引
iris.reset_index().head()
iris.reset_index(drop=True).head() # drop=True 删除旧索引
iris.reset_index().head()
Out[77]:
index sep_len sep_wid pet_len pet_wid
0 3 5.0 3.6 1.4 0.2
1 4 5.4 3.9 1.7 0.4
2 5 4.6 3.4 1.4 0.3
3 6 5.0 3.4 1.5 0.2
4 7 4.4 2.9 1.4 0.2
iris.reset_index(drop=True).head()
Out[78]:
sep_len sep_wid pet_len pet_wid
0 5.0 3.6 1.4 0.2
1 5.4 3.9 1.7 0.4
2 4.6 3.4 1.4 0.3
3 5.0 3.4 1.5 0.2
4 4.4 2.9 1.4 0.2