根据课件关于城市温度的距离,自己创建数据集文件,存为csv文件,要求: 有坏行,有缺失值。 读取文件,处理坏行,缺失值分别用平均值、中位值替换,需要有运行结果输出。 (自己创建数据集的问题,可以打开excel,如果使用记事本,每行的数据以逗号隔开)
时间: 2024-09-13 07:15:42 浏览: 67
首先,为了创建一个包含坏行和缺失值的城市温度数据集,我们可以手动编辑一个CSV文件,例如在Excel或记事本中。假设数据如下,包含了日期、城市名、最高温度和最低温度四列:
| 序号 | 日期 | 城市名 | 最高温度 | 最低温度 |
| -- | -------- | -------- |
| 1 | 2022-01-01 | 北京 | 10 | 5 |
| 2 | 2022-01-02 | 上海 | 12 | 7 |
| 3 | 2022-04 | 坏行数据 | | |
| 5 | 2022-01-05 | 深圳 | 22 | 19 |
| 6 | 2022-01-06 | 成都 | | 15 |
| 7 | 2022-01-07 | 坏行数据 | 24 | 21 |
接着,你可以将这个文件保存为名为"city_temperatures.csv"的CSV文件。
读取文件后,我们可以使用Python的pandas库来处理它,包括删除坏行、填充缺失值:
```python
import pandas as pd
# 读取CSV文件
df = pd.read_csv('city_temperatures.csv')
# 查看原始数据
print("原始数据:")
print(df)
# 删除含有空值的行
df = df.dropna() # 或者用 df.dropna(subset=['最高温度', '最低温度']) 仅针对特定列
# 处理坏行,这里假设"坏行数据"是指只有一部分数值的行
bad_rows_mask = df['城市名'].isin(['坏行数据'])
df.loc[bad_rows_mask, ['最高温度', '最低温度']] = df.loc[bad_rows_mask].mean() # 使用均值填充
# 填充缺失值,这里使用中位数作为填充值
df.fillna(df.median(), inplace=True) # 对整个数据框应用中位数填充
# 写回CSV文件
df.to_csv('processed_city_temperatures.csv', index=False)
# 输出处理后的结果
print("\n处理后的数据:")
print(df)
```
运行上述代码后,你会得到一个处理过坏行和缺失值的新CSV文件,并输出了处理后的数据。
阅读全文