我有一个Panda数据框。
我希望根据最常见的状态填充NaN值,如果该状态之前出现过,则按照状态分组并应用以下代码:
以上代码适用于如果所有状态都发生了,输出结果将是:
City State
0 Cambridge MA
1 NaN DC
2 Boston MA
3 Washignton DC
4 NaN MA
5 Tampa FL
6 Danvers MA
7 Miami FL
8 Cambridge MA
9 Miami FL
10 NaN FL
11 Washington DC
我希望根据最常见的状态填充NaN值,如果该状态之前出现过,则按照状态分组并应用以下代码:
df['City'] = df.groupby('State').transform(lambda x:x.fillna(x.value_counts().idxmax()))
以上代码适用于如果所有状态都发生了,输出结果将是:
City State
0 Cambridge MA
1 Washignton DC
2 Boston MA
3 Washignton DC
4 Cambridge MA
5 Tampa FL
6 Danvers MA
7 Miami FL
8 Cambridge MA
9 Miami FL
10 Miami FL
11 Washington DC
然而,我希望添加一个条件,即如果某个州从未出现过,则该州的城市将是整个“城市”列中最常见的城市。例如,如果数据框如下:
City State
0 Cambridge MA
1 NaN DC
2 Boston MA
3 Washignton DC
4 NaN MA
5 Tampa FL
6 Danvers MA
7 Miami FL
8 Cambridge MA
9 Miami FL
10 NaN FL
11 Washington DC
12 NaN NY
NY从未出现过,我希望输出结果为:
City State
0 Cambridge MA
1 Washignton DC
2 Boston MA
3 Washignton DC
4 Cambridge MA
5 Tampa FL
6 Danvers MA
7 Miami FL
8 Cambridge MA
9 Miami FL
10 Miami FL
11 Washington DC
12 Cambridge NY
以上代码出现 ValueError: ('尝试获取空序列的argmax'),因为“NY”从未出现过。