用python 写出数据清理的代码 有患者的姓名、性别、年龄,以及检测结果,去除一些不完整的数据
时间: 2024-10-10 15:05:49 浏览: 31
在Python中,数据清理是一个关键步骤,特别是在处理可能存在缺失值或异常值的医疗数据时。这里有一个基本的例子,假设我们使用pandas库来操作数据:
```python
import pandas as pd
# 假设df是包含患者信息的数据框
data = {
'姓名': ['张三', '', '李四', '王五'],
'性别': ['男', '女', '未知', '男'],
'年龄': [30, None, 45, 50],
'检测结果': ['正常', '异常', np.nan, '阳性']
}
# 创建DataFrame
df = pd.DataFrame(data)
# 数据清理步骤:
# 1. 检查缺失值
print(df.isnull().sum()) # 查看每列是否有缺失值
# 2. 删除行(替换或删除)
# 对于姓名和性别这类非数值型字段,可以选择填充特定值(如"未知")或者直接删除含有缺失值的行
df = df.dropna(subset=['姓名', '性别']) # 如果想要保留空字符串,可以用pd.Series.fillna()方法
# 对于数值型字段(如年龄和检测结果),可以设定合理的默认值(如0岁或'未测试'),或者根据业务含义填充
df['年龄'].fillna(0, inplace=True)
df['检测结果'].fillna('未测试', inplace=True)
# 或者使用dropna()方法同时删除所有列如果有缺失值
df = df.dropna()
# 3. 错误值处理
# 可能需要检查检测结果列的异常值,例如转换成布尔值或其他合理范围
df['检测结果'] = df['检测结果'].str.lower() # 转换为小写便于后续处理
df['检测结果'] = df['检测结果'].replace(['异常', '阳性的'], True).replace(['正常', '未测试'], False) # 将异常标记为True,正常为False
# 最后,你可以打印清理后的数据帧查看结果
print(df)
```
阅读全文