根据课件关于城市温度的距离,自己创建数据集文件,存为csv文件,要求: 有坏行,有缺失值。 读取文件,处理坏行,缺失值分别用平均值、中位值替换,需要有运行结果输出。
时间: 2024-09-13 17:16:42 浏览: 51
创建数据集文件并保存为CSV格式,可以使用Excel或者Python中的pandas库来完成。以下是使用Python和pandas创建示例数据集并进行相应处理的步骤:
1. 首先,安装pandas库(如果尚未安装):
```bash
pip install pandas
```
2. 使用Python脚本创建数据集并故意添加坏行和缺失值。然后保存为CSV文件:
```python
import pandas as pd
import numpy as np
# 创建数据
data = {
'City': ['City1', 'City2', 'City3', 'City4', 'City5'],
'Temperature': [20, 22, np.nan, 18, 24], # 温度数据,故意添加一个NaN作为缺失值
'Distance': ['50km', '100km', '50km', np.nan, '30km'] # 距离数据,故意添加一个NaN作为缺失值
}
# 将数据转换为DataFrame
df = pd.DataFrame(data)
# 添加一个坏行
bad_row = {'City': 'Error', 'Temperature': 'NaN', 'Distance': 'Error'}
df = df.append(bad_row, ignore_index=True)
# 保存到CSV文件
df.to_csv('city_temperature.csv', index=False)
```
3. 接下来,读取CSV文件,并处理坏行和缺失值。使用平均值替换温度的缺失值,使用中位数替换距离的缺失值:
```python
# 读取CSV文件
df = pd.read_csv('city_temperature.csv')
# 打印原始数据,查看坏行和缺失值
print("原始数据:")
print(df)
# 处理坏行:可以是删除坏行,也可以根据需要进行其他处理
# 这里我们简单地删除了坏行
df = df[df['Temperature'].apply(lambda x: isinstance(x, (int, float)))]
# 使用平均值替换温度的缺失值
df['Temperature'].fillna(df['Temperature'].mean(), inplace=True)
# 使用中位数替换距离的缺失值,需要先将距离转换为数值类型
# 假设距离只包含数字和'km',这里进行了简单的转换处理
df['Distance'] = df['Distance'].str.replace('km', '').astype(float)
df['Distance'].fillna(df['Distance'].median(), inplace=True)
# 再次将距离转换回原始格式
df['Distance'] = df['Distance'].apply(lambda x: str(x) + 'km')
# 打印处理后的数据
print("处理后的数据:")
print(df)
```
运行上述代码后,会输出处理前后的数据集,以及相应的处理结果。
阅读全文