gpt4 book ai didi

python - 使用 groupby 按分区进行移位

转载 作者:行者123 更新时间:2023-12-01 04:33:37 25 4
gpt4 key购买 nike

我有一个数据框,其中有一列我想移动,但是是在分区上而不是整个数据框上。

例如,我想从此数据框开始:

State, Year, GDP
NY,2011,100
NY,2012,110
NY,2013,120
CA,2011,70
CA,2012,80
CA,2013,90

到此数据框:

State, Year, GDP, GDP y-1
NY,2011,100,NaN
NY,2012,110,100
NY,2013,120,110
CA,2011,70,NaN
CA,2012,80,70
CA,2013,90,80

到目前为止,我已经使用过这样的代码:

grouped = df.groupby("State")
for state, state_df in grouped:
state_df["GDP Y-1"]=state_df["GDP"].shift(1)

我相信这给了我我想要的每个州的东西,但我不知道如何将它组合在一起(基本上只是将每个数据帧一个一个地附加在另一个数据帧下面)。我怎样才能做到这一点?

最佳答案

您可以将中间 DataFrame 存储在列表中,并使用 pd.concat 将它们连接在一起:

grouped = df.groupby("State")
L = []
for state, state_df in grouped:
state_df["GDP Y-1"]=state_df["GDP"].shift(1)
L.append(state_df)

pd.concat(L)
Out[149]:
State Year GDP GDP Y-1
3 CA 2011 70 NaN
4 CA 2012 80 70
5 CA 2013 90 80
0 NY 2011 100 NaN
1 NY 2012 110 100
2 NY 2013 120 110

关于python - 使用 groupby 按分区进行移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com