gpt4 book ai didi

python - 移动数据帧的每个值而不更改列

转载 作者:行者123 更新时间:2023-11-28 21:33:24 25 4
gpt4 key购买 nike

我有下面的pandas DataFrame:

pd.DataFrame(
list(range(16,0,-1)),
index=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P']
)

我想知道是否有一个pandas函数可以让我通过以下方式移动该数据帧的值x:例如,如果x=3,我得到:

 D    E    F    G    H  I    J    K   L   M   N  O   P 
16 15 14 13 12 11 10 9 8 7 6 5 4

并确保最后一列保持相同的顺序

最佳答案

尽管@Chris的答案很直观,很可能是您应该使用的,我会加上我的 2 美分。

dropnaastype

我不喜欢在移位时将整数转换为 float 。另请注意,我在 astype 中使用了 df.dtypes。这使得它不知道类型的开始是什么。

df.shift(3).dropna().astype(df.dtypes).T

D E F G H I J K L M N O P
0 16 15 14 13 12 11 10 9 8 7 6 5 4

如果数据中存在预先存在的 NA,这就会出现问题。在这种情况下,我将包含一个 iloc 来显式修剪前 3 行。但如果是这种情况,那么只需使用下一个解决方案


ilocset_index

df.iloc[3:].set_index(df.index[:-3]).T

D E F G H I J K L M N O P
0 16 15 14 13 12 11 10 9 8 7 6 5 4

pd.DataFrame

pd.DataFrame(df.values[:-3].T, df.columns, df.index[3:])

D E F G H I J K L M N O P
0 16 15 14 13 12 11 10 9 8 7 6 5 4

关于python - 移动数据帧的每个值而不更改列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54673261/

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