簡體   English   中英

根據行和列的值填充NaN值

[英]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和向后填充,但是由於缺少的值未遵循某種模式,因此無法正常工作。

您可以按LongitudeLatitude列排序,以使NaN位於底部,然后使用groupbyffill ,最后按索引重新排序:

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排序,然后按LongitudeLatitude排序,並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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM