<jupyter_start><jupyter_text>鸢尾属植物数据清洗  简介:这个练习看起来有点陌生，但是在大家还是接着做。译者补充：数据清洗是数工作中很重要的一环，大家一定要学。我们要学会怎么清除异常数据，填充数据。 Step 1. 导入必须的Python库<jupyter_code>import pandas as pd
import numpy as np<jupyter_output><empty_output><jupyter_text>Step 2. 从这里 [下载地址](https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)  导入数据.   Step 3. 将这文件中的数据放到变量 iris<jupyter_code>url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
iris = pd.read_csv(url)

iris.head()
# 大家会看到 iris 没列名信息，是不是很坑爹呀<jupyter_output><empty_output><jupyter_text>Step 4. 给 iris 手工配上列名<jupyter_code># 花的最外一轮叶状构造称为花萼，花萼由若干片萼片组成
# 1. sepal_length (in cm) 萼片长度(厘米)
# 2. sepal_width (in cm)  萼片宽度(厘米)
# 3. petal_length (in cm) 花瓣长度(厘米)
# 4. petal_width (in cm)  花瓣宽度(厘米)
# 5. class                类别

# 配上的5个列名
iris.columns = ['sepal_length','sepal_width', 'petal_length', 'petal_width', 'class']
iris.head()<jupyter_output><empty_output><jupyter_text>Step 5.  iris 里是否有缺失的空值?<jupyter_code>pd.isnull(iris).sum()
# nice no missing value<jupyter_output><empty_output><jupyter_text>Step 6. 把10~29 行，petal_length列的数据变为空这里的10～29行，是以0为起始行<jupyter_code>iris.iloc[10:30,2:3] = np.nan
iris.head(20)<jupyter_output><empty_output><jupyter_text>Step 7. 让我们把所有的空值替换为1<jupyter_code># 译者补充，这时使用了 fillna 函数
#   它会将所有的空值(NaN)替换为1, 
#   iplace = True 表示直接在 iris 原始数据上修改
iris.petal_length.fillna(1, inplace = True)
iris<jupyter_output><empty_output><jupyter_text>Step 8. 删除 iris 中的类别(class)列<jupyter_code>del iris['class']
iris.head()<jupyter_output><empty_output><jupyter_text>Step 9.  将前3行的所有数据设为空<jupyter_code>iris.iloc[0:3 ,:] = np.nan
iris.head()<jupyter_output><empty_output><jupyter_text>Step 10.  删除 iris 中所有含有空值的行<jupyter_code>iris = iris.dropna(how='any')
iris.head()<jupyter_output><empty_output><jupyter_text>Step 11. 对索引进行重新编号<jupyter_code># 因为之前删除了3行数据，索引是从3开始，
# 重新编号后索引又是从0开始了
iris = iris.reset_index(drop = True)
iris.head()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1405043746783325, 'fraction_numerical': 0.023160061760164694, 'mean_word_length': 7.601769911504425, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '485787', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1131, 'n_tokens_neox': 1169, 'n_words': 113, 'path': '10_Deleting/Iris/Exercises_with_solutions_and_code.ipynb', 'repo_name': 'liuhui998/pandas_exercises', 'size': '1943'}