缺失值
判断各个单元格是否为空。
isnull() 判断各个单元格是否为空
删除包含缺失值的行
df.dropna(inplace=True)
填充缺失值
# 填充缺失值为指定值,例如0 df.fillna(0, inplace=True)
# 或者填充缺失值为列的均值 df.fillna(df.mean(), inplace=True)
重复值
查找重复值
df.duplicated()
删除重复值
df.drop_duplicates(inplace=True)
错误数据
数据类型转换: 使用.astype()方法将列的数据类型更改为正确的类型
# 转换为整数类型 df['column_name'] = df['column_name'].astype(int)
# 转换为浮点数类型 df['column_name'] = df['column_name'].astype(float)
字符串处理: 如果错误数据涉及到字符串的问题,使用字符串方法(如.str.replace()、.str.strip()等)来处理。
# 替换字符串中的特定字符 df['column_name'] = df['column_name'].str.replace('old_string', 'new_string')
# 去除字符串两端的空格 df['column_name'] = df['column_name'].str.strip()
格式错误
如果学校名称一列包含缩写、全称以及不全的名称,你可以采取以下步骤来统一格式:
-
识别不一致的名称: 首先,识别数据中的不一致名称。可以使用Pandas的
unique()方法查看不同的学校名称,以便了解存在哪些不一致。 -
制定规则: 定义一些规则或转换方法,以统一学校名称的格式。这些规则可以包括:
- 缩写转全称:将缩写转换为对应的全称。
- 补全不全的名称:添加缺失的部分,使名称完整。
- 删除多余信息:去除多余的信息,例如括号中的注释。
-
使用函数进行转换: 创建一个自定义的函数,将上述规则应用于学校名称列。这个函数可以使用
apply()方法来逐行处理数据。 -
示例代码:
import pandas as pd
# 示例的规则字典,可以根据具体情况扩展
name_mapping = {
"ABC": "ABC University",
"XYZ": "XYZ College",
"DEF": "DEF Institute"
}
def clean_school_name(name):
# 如果名称在规则字典中,直接映射
if name in name_mapping:
return name_mapping[name]
# 否则根据需要进行其他处理,例如补全或删除多余信息
elif "Partial Name" in name:
return "Complete Name"
else:
return name
# 创建示例DataFrame
data = {'School Name': ['ABC', 'XYZ College', 'Incomplete', 'DEF']}
df = pd.DataFrame(data)
# 应用名称清洗函数
df['School Name'] = df['School Name'].apply(clean_school_name)
# 打印清洗后的DataFrame
print(df)
浙公网安备 33010602011771号