我正在尝试实现一个简单的函数,它允许我迭代回来寻找一个非空值,这个值将被存储在一个名为prv\u djma的新列中。你知道吗
数据
data = {'id_st': [100, 100, 100, 100, 100, 100, 100, 100, 100],
'year': [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018],
'djma': [1000, 2200, 0, 3000, 1000, 0, 2000, 0, 0],
'taux': [np.nan, 0.9, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 0.7]}
df = pd.DataFrame(data)
df
df['prv_djma'] = df['djma'].shift()
我在找什么
目标是检查N行,直到找到一个非空的djma,然后将值放入当前行(prv\u djma列)。你知道吗
例如,带有(索引8)的最后一行的djma=0,(索引7)也是djma=0,所以我想用djma(索引6)填充prv\u djma列。你知道吗
注意
我的问题在索引8中。所有其他行都正确。你知道吗
这是
shift
,确保如果存在连续的0,则使用前一个值填充:输出:
对于组,您需要分别执行此操作,以便
.shift
不会溢出到组之外。你知道吗相关问题 更多 >
编程相关推荐