Pandas分组和移位,但在每个b内

2024-06-08 02:51:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,然后我分组:

ID   week   sale 
A     1     1
A     2     4
A     3     10
B     1     7
B     2     2.3
B     3     4.4

我想申请轮班以获得前一周的销售,但只是停留在同一个ID区。所希望的是:

ID   week   sale   sale-shift
A     1     1      nan
A     2     4      1
A     3     10     4
B     1     7      nan
B     2     2.3    7
B     3     4.4    2.3

如果我使用轮班制:

df['sale-shift']=df['sale'].shift(-1)

它不考虑groupby的ID。我想为每个ID(在我的情况下是客户)执行

谢谢大家!


Tags: 数据iddf客户shift情况salenan
1条回答
网友
1楼 · 发布于 2024-06-08 02:51:50
import pandas as pd
from pandas.compat import StringIO

print(pd.__version__)

csvdata = StringIO("""ID,week,sale
A,1,1
A,2,4
A,3,10
B,1,7
B,2,2.3
B,3,4.4""")

df = pd.read_csv(csvdata, sep=",")
df['sale-shift'] = df.groupby('ID')['sale'].shift(-1)
print(df)

相关问题 更多 >

    热门问题