如何将熊猫列中的值(之前为零)填充为下一行的适当整数/浮点值?

时间:2019-02-04 15:04:28

标签: python pandas loops dataframe fillna

我一直在使用纬度和经度数据处理大型数据集。 我正在为整个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和我的要求中了解。

我只想获取倒数第二个元素,该元素具有非零的适当值,并在该列的前几行中填充该元素。

请求

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

1 个答案:

答案 0 :(得分:1)

您可以将replace的所有0np.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