2024-09-28 22:39:27 发布
网友
不是精确的代码,而是简化了:
df['running_total'] = df.running_total.shift() + df['total']
显然,在第一个实例中df.running_total.shift()该条目不存在,因此会出错。在
df.running_total.shift()
第一个条目有一个特殊的计算,所以我想显式地设置它。或者在找不到上一行条目或DNE时使用该计算作为默认值。在
任何一种解决方案都可以工作,更倾向于更快的解决方案(小数据集,很少调用)。在
您可以使用:
df = pd.DataFrame({'running_total':[4,5,np.nan, np.nan]}) print (df) running_total 0 4.0 1 5.0 2 NaN 3 NaN print (df.running_total.shift()) 0 NaN 1 4.0 2 5.0 3 NaN Name: running_total, dtype: float64
一个可能的解决方案是^{}-但是它替换了所有的NaN
NaN
如果只想替换第一个值,请将其设置为^{}(iloc,loc):
iloc
loc
shifted = df.running_total.shift() shifted.iat[0] = 0 print (shifted) 0 0.0 1 4.0 2 5.0 3 NaN Name: running_total, dtype: float64
您可以使用:
一个可能的解决方案是^{} -但是它替换了所有的
^{pr2}$NaN
如果只想替换第一个值,请将其设置为^{} (
iloc
,loc
):相关问题 更多 >
编程相关推荐