现有df,有城市和城市等级两个字段,城市等级字段有缺失值,现在需要根据城市字段填充城市等级字段的缺失值并一一对应,请写出代码
时间: 2024-03-21 07:42:29 浏览: 36
缺失值处理发matlab代码-ezc3d:易于使用的C3D读/写器,适用于C++,Python和Matlab
我们可以使用 Pandas 库中的 `fillna()` 函数来填充缺失值,然后使用 `groupby` 和 `apply` 函数来根据城市字段进行分组,将每个城市的等级进行填充。代码如下:
```python
import pandas as pd
# 读取数据
df = pd.read_csv('data.csv')
# 根据城市字段进行分组,将每个城市的等级进行填充
df['level'] = df.groupby('city')['level'].apply(lambda x: x.fillna(x.mode()[0]))
# 确保每个城市只有一个等级值
df.drop_duplicates(subset=['city'], inplace=True)
# 重置索引,并删除多余的列
df.reset_index(drop=True, inplace=True)
df.drop(['index'], axis=1, inplace=True)
```
这段代码的思路是,先根据城市字段进行分组,将每个城市的等级进行填充,然后去除重复的城市,最后重置索引并删除多余的列。这样就能够保证每个城市都有一个等级值,并且填充的等级值与城市一一对应。
阅读全文