gpt4 book ai didi

python - 如何使用 Pandas 将最后一行移到第一行

转载 作者:行者123 更新时间:2023-11-28 21:02:57 47 4
gpt4 key购买 nike

所以我有一个看起来像这样的数据框:

                         #1                     #2
1980-01-01 11.6985 126.0
1980-01-02 43.6431 134.0
1980-01-03 54.9089 130.0
1980-01-04 63.1225 126.0
1980-01-05 72.4399 120.0

我想要做的是将第一列的第一行 (11.6985) 向下移动 1 行,然后将第一列的最后一行 (72.4399) 移动到第一行,第一列,就像这样:

                         #1                     #2
1980-01-01 72.4399 126.0
1980-01-02 11.6985 134.0
1980-01-03 43.6431 130.0
1980-01-04 54.9089 126.0
1980-01-05 63.1225 120.0

我的想法是,我想使用这些数据帧为每个类次找到一个 R^2 值,因此我需要使用所有数据,否则它可能无法工作。我试过使用 pandas.Dataframe.shift() :

print(data)

#Output
1980-01-01 11.6985 126.0
1980-01-02 43.6431 134.0
1980-01-03 54.9089 130.0
1980-01-04 63.1225 126.0
1980-01-05 72.4399 120.0

print(data.shift(1,axis = 0))

1980-01-01 NaN NaN
1980-01-02 11.6985 126.0
1980-01-03 43.6431 134.0
1980-01-04 54.9089 130.0
1980-01-05 63.1225 126.0

所以它只是将两列向下移动并删除最后一行数据,这不是我想要的。

有什么建议吗?

最佳答案

不确定性能,但您可以尝试 numpy.roll:

import numpy as np
print(df.apply(np.roll, shift=1))

# #1 #2
#1980-01-01 72.4399 120.0
#1980-01-02 11.6985 126.0
#1980-01-03 43.6431 134.0
#1980-01-04 54.9089 130.0
#1980-01-05 63.1225 126.0

仅移动 #1 列:

df['#1'] = np.roll(df['#1'], shift=1)

print(df)
# #1 #2
#1980-01-01 72.4399 126.0
#1980-01-02 11.6985 134.0
#1980-01-03 43.6431 130.0
#1980-01-04 54.9089 126.0
#1980-01-05 63.1225 120.0

关于python - 如何使用 Pandas 将最后一行移到第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47295566/

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