我的数据框head()
如下所示:
followers following
experience userid date
Intermediate 0 2010-01-02 05:28:38 84330 1331
2010-01-02 18:46:36 84330 1331
2010-01-02 18:47:22 84330 1331
2010-01-02 18:50:12 84330 1331
2010-01-02 23:08:55 84330 1331
我有更多行。对于每个用户ID,我想减去第一个followers
值(例如,在上面的示例中,从userid=0
中的所有日期减去84330)。是否有一些apply()
命令会执行此操作?
答案 0 :(得分:1)
找到每个用户标识的第一行:
cut = df.groupby('userid').first()
然后将其合并回原始表:
cut.columns = cut.columns.map(lambda x: str(x) + '_a')
df2 = df.merge(cut, left_on=['userid'], right_index=True, how='left')
然后删除与第一行值
匹配的这些行new = df2[df2['followers'] != df2['followers']][['userid','date','followers']]