我有以下伪数据帧:
City Longitude Latitude
new mexico 1.94 2.34
berlin 2.44 5.33
london 1.1 2.44
new mexico nan nan
tokyo 2.2 3.3
berlin nan nan
new york 2.5 1.44
dakota 2 5.4
jakarta 3.4 4.5
london nan nan
有些城市被列了不止一次,但重复的城市却缺少价值。我想使用相同城市的值在经度和纬度列中填充一些城市的nan值,我尝试过使用ffil和后向填充,但它不起作用,因为缺少的值不符合模式。
您可以按Longitude
和Latitude
列排序,使NaN
位于底部,然后使用groupby
和ffill
,最后按索引重新排序:
df.sort_values(['Longitude', 'Latitude']).groupby('City').ffill().sort_index()
City Longitude Latitude
0 new mexico 1.94 2.34
1 berlin 2.44 5.33
2 london 1.10 2.44
3 new mexico 1.94 2.34
4 tokyo 2.20 3.30
5 berlin 2.44 5.33
6 new york 2.50 1.44
7 dakota 2.00 5.40
8 jakarta 3.40 4.50
9 london 1.10 2.44
或者更好的是,只需先按City
排序,然后按Longitude
和Latitude
排序,然后使用不带groupby:的ffill
df.sort_values(['City','Longitude', 'Latitude']).ffill().sort_index()
City Longitude Latitude
0 new mexico 1.94 2.34
1 berlin 2.44 5.33
2 london 1.10 2.44
3 new mexico 1.94 2.34
4 tokyo 2.20 3.30
5 berlin 2.44 5.33
6 new york 2.50 1.44
7 dakota 2.00 5.40
8 jakarta 3.40 4.50
9 london 1.10 2.44