数据清理:缺失数据
Coddy Pandas 数据分析 课程的第 6 课,共 19 课。
通常,CSV 文件中会有缺失数据、错误的列名、重复项、错误的值和错误的数据类型。Pandas 模块提供了处理这些问题所需的所有工具。
缺失数据
要查找某个值是否缺失:
df.isna()要了解每列有多少个缺失值:
df.isna().sum()isna() 函数会将所有值转换为 true 或 false(表示是否缺失),然后再进行后续处理。sum() 会将 true 视为 1,将 false 视为 0。
要遍历各列及其缺失值数量,可以像处理字典一样使用 items() 方法(尽管它是 Pandas 的 series 对象):
for column, missing_num in df.isna().sum().items():
print(column, missing_num)要为整个数据框填充所有缺失值,请使用 fillna() 方法:
df = df.fillna("some value")要只为某一列填充缺失值,请对该列使用 fillna() 函数:
df["some_column"] = df["some_column"].fillna("some value")你还可以删除所有包含缺失值的行:
df = df.dropna()挑战
简单CSV 文件 missing.csv 中的数据很杂乱。
以下是文件的前 5 行:
ID,COUNTRY,COLOR,SKILL,SKILL_POINTS,UTILIZATION,IS_VALID
1,France,Signal violet,marksmanship,14,0.1924,1
1,France,Signal violet,marksmanship,14,0.1924,1
2,Solomon Islands,Pearl violet,,4,,1
3,Germany,,calligraphy,12,0.88646,0清理数据:
- 对于缺失值超过
2个的所有列,将缺失值填为Missing - 删除其余所有含有缺失值的行。
要查看进度,请打印 df:print(df)
将最终结果存储在 df 变量中。
要通过测试用例,请不要打印 df!
亲手试试
# 已将 pandas 导入为 pd
df = pd.read_csv("./missing.csv")
# 在下方编写你的代码
Pandas 数据分析中的所有课
自己练习: Python 在线编译器