0

我一直在使用经纬度数据处理大型数据集。我正在为整个 df 进行插值,所以在此之前我只希望我的纬度和经度列有元素填充不带零的值。

我的数据框(解释目的):

Time 	lat 	long
0 	0 	0
1 	0 	0
2 	0 	0
3 	0 	0
4 	0 	0
5 	0 	0
6 	0 	0
7 	5 	2
8 	5 	2
9 	0 	0
10 	0 	0
11 	0 	0
12 	0 	0
13 	6 	1
14 	6 	1

我的要求:

    Time 	lat 	long
    0 	5 	2
    1 	5 	2
    2 	5 	2
    3 	5 	2
    4 	5       2
    5 	5 	2
    6 	5 	2
    7 	5 	2
    8 	5 	2
    9 	6 	1
    10 	6 	1
    11 	6 	1
    12 	6 	1
    13 	6 	1
    14 	6 	1

我需要什么

我希望您从实际的 df 和我的要求中理解。

我只想取下一个具有除零以外的正确值的最后一个元素,并在该列的前几行中填充该元素。

要求

我相信会有一些不错的方法来完成我的工作。

4

1 回答 1

1

你可以replace全部0使用np.nan并使用bfill下一个有效值填充它们:

df.loc[:,'Time':].replace(0,np.nan).bfill()

Time  lat  long
0    1.0  5.0   2.0
1    1.0  5.0   2.0
2    2.0  5.0   2.0
3    3.0  5.0   2.0
4    4.0  5.0   2.0
5    5.0  5.0   2.0
6    6.0  5.0   2.0
7    7.0  5.0   2.0
8    8.0  5.0   2.0
9    9.0  6.0   1.0
10  10.0  6.0   1.0
11  11.0  6.0   1.0
12  12.0  6.0   1.0
13  13.0  6.0   1.0
14  14.0  6.0   1.0
于 2019-02-04T15:06:45.457 回答