2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
您可以減去按id和分組時(shí)的最大值query
m = df.groupby('id').day.transform('max')
df.assign(day=df.day.sub(m - 1)).query('day >= 0')
day id value
2 0 120 [0.25, 0.4, 0.7]
3 1 120 [0.15, 0.34, 0.17]
5 0 121 [0.5, 3.44, 2.57]
6 1 121 [0.5, 0.34, 0.37]

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以使用groupbywith tail,然后我們會(huì)cumcount重新創(chuàng)建這一天
df.groupby('id').tail(2).assign(day=lambda x : x.groupby('id').cumcount())
Out[221]:
day id value
2 0 120 [0.25, 0.4, 0.7]
3 1 120 [0.15, 0.34, 0.17]
5 0 121 [0.5, 3.44, 2.57]
6 1 121 [0.5, 0.34, 0.37]
添加回答
舉報(bào)