python - 数据框中行的移动顺序

标签 python pandas

我试图使数据帧 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 - 数据框中行的移动顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304063/

相关文章:

python - seaborn 属性错误 : 'module' object has no attribute 'set'

python - 如何使用 Pandas 选择两组中的前 N ​​组并将第二组的其余部分聚合到 "Others"中?

python - 获取 Pandas 中键的整数索引的最有效方法

python - Pandas read_fwf 没有加载文件的全部内容

python - 如何为 pandas groupby 结果指定列标题?

python - 我如何用 PyObjects 声明一个 Boost.Python C++ 类

python - 节俭 python - TApplicationException : Invalid method name

python-3.x - 我的 python 代码中有一个错误 key 错误 ['logo_url' ] 不在索引中

python - 读取后使用不同的行作为 pandas 中的标签

Python - 如何在不启动应用程序的情况下运行单元测试?