gpt4 book ai didi

python - Dataframe 中行的移动顺序

转载 作者:行者123 更新时间:2023-11-28 22:42:59 24 4
gpt4 key购买 nike

我试图让我的数据框 df 的最后两行成为我的数据框的前两行,之前的第一行在移位后成为第三行。这是因为我刚刚添加了行 [3,0.3232, 0, 0, 2,0.500], [6,0.3232, 0, 0, 2,0.500]。但是,这些被添加到 df 的末尾,因此成为最后两行,而我希望它们成为前两行。我只是想知道如何做到这一点。

df = df.T
df[0] = [3,0.3232, 0, 0, 2,0.500]
df[1] = [6,0.3232, 0, 0, 2,0.500]
df = df.T
df = df.reset_index()

最佳答案

您可以调用reindex并传递新的所需顺序:

In [14]:

df = pd.DataFrame({'a':['a','b','c']})
df
Out[14]:
a
0 a
1 b
2 c
In [16]:

df.reindex([1,2,0])
Out[16]:
a
1 b
2 c
0 a

编辑

另一种方法是使用 np.roll请注意,这会返回一个 np.array,因此我们必须明确地从 df 中选择列以覆盖它们:

In [30]:    
df = pd.DataFrame({'a':['a','b','c'], 'b':np.arange(3)})
df

Out[30]:
a b
0 a 0
1 b 1
2 c 2

In [42]:
df[df.columns] = np.roll(df, shift=-1, axis=0)
df

Out[42]:
a b
0 b 1
1 c 2
2 a 0

axis=0 参数似乎是必需的,否则不会保留列顺序:

In [44]:    
df[df.columns] = np.roll(df, shift=-1)
df

Out[44]:
a b
0 0 b
1 1 c
2 2 a

关于python - Dataframe 中行的移动顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304063/

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