在pandas数据帧中将列向上移动一格?

2024-05-19 10:10:05 发布

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

我有一个熊猫数据框。我想“延迟”我的一个专栏。这意味着,例如,将整个列“gdp”上移一个,然后删除剩余行底部的所有多余数据,以便所有列的长度再次相等。

df =
    y  gdp  cap
0   1    2    5
1   2    3    9
2   8    7    2
3   3    4    7
4   6    7    7

df_lag =
    y  gdp  cap
0   1    3    5
1   2    7    9
2   8    4    2
3   3    7    7

无论如何要这么做?


Tags: 数据dflagcap专栏gdp
3条回答

例如,要轻松地按5个值移动,同时去掉NaN行,而不必跟踪所移动的值的数量:

d['gdp'] = df['gdp'].shift(-5)
df = df.dropna()

将gdp列上移:

df.gdp = df.gdp.shift(-1)

然后删除最后一行

In [44]: df['gdp'] = df['gdp'].shift(-1)

In [45]: df
Out[45]: 
   y  gdp  cap
0  1    3    5
1  2    7    9
2  8    4    2
3  3    7    7
4  6  NaN    7

In [46]: df[:-1]                                                                                                                                                                                                                                                                                                               
Out[46]: 
   y  gdp  cap
0  1    3    5
1  2    7    9
2  8    4    2
3  3    7    7

相关问题 更多 >

    热门问题