python - Pandas Groupby (shift) 函数为第一个条目返回 null
问题描述
对于以下代码,在 python 中,我试图得到最新评级之间的差异,按日期减去以前的评级,我在“orinc”中完成
但是,如果没有以前的评级 - 或“H_Name”的第一个条目,它会返回当前评级。是否有任何要添加到此代码中的内容,以便返回“null”或“nan”?
df2['orinc'] = df2['HIR_OfficialRating'] - df2.groupby('H_Name')['HIR_OfficialRating'].shift(1)
解决方案
当然,检查列中的值H_Name
是否唯一,如果是,shift
则返回缺失值后的每个值,因为转移不存在先前的值。
每个组的第一个值也是NaN
出于相同的原因。
df2 = pd.DataFrame({
'H_Name': ['a','a','a','a','e','b','b','c','d'],
'HIR_OfficialRating': list(range(9))})
df2['new'] = df2.groupby('H_Name')['HIR_OfficialRating'].shift(1)
print (df2)
H_Name HIR_OfficialRating new
0 a 0 NaN < first value of group a
1 a 1 0.0
2 a 2 1.0
3 a 3 2.0
4 e 4 NaN <-unique e
5 b 5 NaN < first value of group b
6 b 6 5.0
7 c 7 NaN <-unique c
8 d 8 NaN <-unique d
df2['orinc'] = df2['HIR_OfficialRating'] - df2.groupby('H_Name')['HIR_OfficialRating'].shift(1)
print (df2)
H_Name HIR_OfficialRating orinc
0 a 0 NaN
1 a 1 1.0
2 a 2 1.0
3 a 3 1.0
4 e 4 NaN
5 b 5 NaN
6 b 6 1.0
7 c 7 NaN
8 d 8 NaN
推荐阅读
- python - 脚本Python中的进度条
- r - 错误:在 R 中运行绘图采样时,C 堆栈使用 15925344 太接近限制
- excel - 自定义类型来存储和输出数据
- javascript - 在javascript中访问另一个对象内的对象
- filter - 使用管道和过滤器过滤可观察的 number[]
- postgresql - 在 PostgreSQL 中获取不带扩展名的 windows 文件名
- javascript - Ajax 调用用户百分比重定向
- windows-10 - 在 Windows 10 中执行程序什么都不做
- xml - 如果 XMLNode 中不存在该属性,则创建该属性
- javascript - 如何以及是否在条带化新库 @stripe/react-stripe-js 中使用服务器端