python - 在熊猫中应用移位函数组
问题描述
我正在尝试从 curr_value 功能创建新的列功能。在这里,我想从以前的当前值中获取值,使用df.curr_value.shift(fill_value=-1)
我可以获得以前的值。如何仅将 shift 应用于唯一的“uid”列。例如,在下面的示例中,我想将 shift 应用于 uniqie ID 值。 df[df['uid']==1].curr_value.shift(fill_value=-1)
pandas 中还有其他方法可以让我不需要迭代唯一的 uid 值吗?
import pandas as pd
import numpy as np
events = np.array([[1, 1, 1],
[1, 2, 4],
[1, 3, 3],
[1, 3, 4],
[2, 1, 4],
[2, 2, 3]])
df=pd.DataFrame(data=events, columns=["uid", "eid", "curr_value"])
解决方案
是的,我们可以做到groupby
df['pre'] = df.groupby('uid')['curr_value'].shift(fill_value=-1)
Out[5]:
0 -1
1 1
2 4
3 3
4 -1
5 4
Name: curr_value, dtype: int32
推荐阅读
- android - Android 如何使用 GROUP BY 从另一个表更新 SQLite 表
- java - 在 Mac 上使用 Eclipse 而不是在 Win10 上使用 Java Scanner 时出现 InputMismatchException 错误
- nightwatch.js - 无法在页面对象命令中设置 cookie
- r - 从图例中删除符号 a
- heroku - 是否可以仅将应用程序日志(而不是路由器日志)发送到 Heroku 日志记录插件?
- internet-explorer - 如何在 IE 中制作背景大小的封面
- python - Pandas 中带有“通配符”的查找表
- javascript - Javascript“removeEventListener”不起作用
- excel - 在 VBA 中设置查找下一个和查找上一个按钮
- python-3.x - 如何在 pyttsx3 中暂停和恢复?