gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:08 26 4
gpt4 key购买 nike

不是确切的代码,而是简化的:

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

显然,在第一个实例中 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

一种可能的解决方案是 fillna - 但它取代了所有 NaNs

print (df.running_total.shift().fillna(0))
0 0.0
1 4.0
2 5.0
3 0.0
Name: running_total, dtype: float64

如果只想替换第一个值,则将其设置为 iat (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

关于python - 如何仅在 pandas 中将列数据添加到第一行或为新列条目提供默认数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47008340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com