在Python中改变Pandas DataFrame列的顺序

  • Post category:Python

在Python中,使用Pandas库来读取和处理数据是非常常见的。当我们需要对DataFrame中的列进行重新排列时,可以使用Pandas提供的一些方法来完成该任务。

首先,我们需要创建一个Pandas DataFrame实例,作为示例数据。下面是一些示例代码,用于创建一个具有10行和5列的DataFrame对象:

import numpy as np
import pandas as pd

# 创建一个包含随机值的DataFrame实例
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])

DataFrame实例df由10行和5列组成。下一步是如何按照我们所需的顺序改变列的排列。以下是两种常见的方法:

方法一:使用列索引进行列重排

列索引可以帮助我们快速地访问和更改数据。可以使用列表和选择符号[]来访问具有特定列索引的列。对于我们的示例DataFrame,要使用以下代码来将’A’列和’E’列的位置进行交换:

# 将'A'列和'E'列的位置进行交换
df = df[['E', 'B', 'C', 'D', 'A']]

输出结果为:

          E         B         C         D         A
0  0.814356  0.521748  0.584235  0.608049  0.666871
1  0.762296  0.465370  0.124372  0.283207  0.317007
2  0.007649  0.970768  0.813191  0.071190  0.542972
3  0.491264  0.578166  0.247336  0.931187  0.828559
4  0.353057  0.821225  0.121860  0.234449  0.269549
5  0.889201  0.160271  0.896897  0.435901  0.771908
6  0.252032  0.835019  0.647859  0.343142  0.055337
7  0.472286  0.766703  0.656659  0.161740  0.151736
8  0.546672  0.352822  0.193686  0.917986  0.677661
9  0.683344  0.476764  0.773124  0.029048  0.236444

方法二:使用reindex函数进行列重排

在Pandas中,有一个名为reindex()的函数,可以帮助我们重新排序DataFrame的索引或列。如果我们要按照特定的顺序重排列,只需为reindex()函数传递一个包含新列顺序的列表,它将返回一个新的DataFrame对象,其中包含已按指定顺序排序的列。

以下是示例代码:

# 重新索引(重排列)DataFrame,并设置新的列顺序
df = df.reindex(columns=['D', 'B', 'C', 'A', 'E'])

输出结果为:

          D         B         C         A         E
0  0.608049  0.521748  0.584235  0.666871  0.814356
1  0.283207  0.465370  0.124372  0.317007  0.762296
2  0.071190  0.970768  0.813191  0.542972  0.007649
3  0.931187  0.578166  0.247336  0.828559  0.491264
4  0.234449  0.821225  0.121860  0.269549  0.353057
5  0.435901  0.160271  0.896897  0.771908  0.889201
6  0.343142  0.835019  0.647859  0.055337  0.252032
7  0.161740  0.766703  0.656659  0.151736  0.472286
8  0.917986  0.352822  0.193686  0.677661  0.546672
9  0.029048  0.476764  0.773124  0.236444  0.683344

注意:在使用reindex()函数时,如果有任何列在原始DataFrame中不存在,那么它们将在新DataFrame中被添加为NaN值。

以上就是Python中如何改变Pandas DataFrame列的顺序的完整攻略,包括两种常见的重排列方法和输出结果。