如何将列数据添加到pandas中的第一行,或为新列条目提供默认数据?

2024-09-28 22:39:27 发布

您现在位置:Python中文网/ 问答频道 /正文

不是精确的代码,而是简化了:

df['running_total'] = df.running_total.shift() + df['total']

显然,在第一个实例中df.running_total.shift()该条目不存在,因此会出错。在

第一个条目有一个特殊的计算,所以我想显式地设置它。或者在找不到上一行条目或DNE时使用该计算作为默认值。在

任何一种解决方案都可以工作,更倾向于更快的解决方案(小数据集,很少调用)。在


Tags: 数据实例代码dfshift条目解决方案running
1条回答
网友
1楼 · 发布于 2024-09-28 22:39:27

您可以使用:

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

^{pr2}$

如果只想替换第一个值,请将其设置为^{}ilocloc):

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

相关问题 更多 >