[英]Filling NaN values based on values of row and column
我有以下虛擬數據框:
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
排序,並ffill
不使用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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.