Menu
CoddyTech

数据清理:缺失数据

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()
challenge icon

挑战

简单

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 在线编译器