简介:在使用 Pandas 处理数据时,有时需要重新调整 DataFrame 中列的顺序。本文将介绍如何使用 Pandas 重新排序 DataFrame 中的列。
在 Pandas 中,DataFrame 的列默认按照它们在数据中出现的顺序进行排序。但是,有时候我们可能需要按照特定的顺序排列列。以下是一些方法来重新排序 DataFrame 中的列:
方法一:使用 reindex 方法reindex 方法可以用于根据指定的顺序重新索引 DataFrame。首先,我们需要创建一个包含所有列名的列表,然后使用 reindex 方法按照这个列表对 DataFrame 进行重新索引。
import pandas as pd# 创建一个示例 DataFramedf = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]})# 创建一个包含列名的列表,按照需要的顺序排列columns_order = ['B', 'A', 'C']# 使用 reindex 方法按照列名列表重新索引 DataFramedf = df.reindex(columns=columns_order)
方法二:使用 iloc 方法iloc 方法也可以用于重新排序 DataFrame 中的列。我们可以使用 iloc 方法按照行号索引来选择 DataFrame 中的列,并按照需要的顺序排列它们。
import pandas as pd# 创建一个示例 DataFramedf = pd.DataFrame({'A': [1, 2, 3],'B': [4, 5, 6],'C': [7, 8, 9]})# 使用 iloc 方法按照行号索引选择列,并按照需要的顺序排列它们df = df.iloc[:, [1, 0, 2]]
方法三:使用 sort_index 方法(仅适用于非整数索引的列)
如果 DataFrame 的列名是字符串类型,并且包含非整数索引,我们可以使用 sort_index 方法对它们进行排序。首先,我们需要将 DataFrame 的索引设置为列名,然后使用 sort_index 方法对它们进行排序。最后,我们可以使用 reset_index 方法将排序后的索引转换为列。
```python
import pandas as pd
df = pd.DataFrame({
‘B’: [4, 5, 6],
‘A’: [1, 2, 3],
‘C’: [7, 8, 9]
})
df.index = [‘col1’, ‘col2’, ‘col3’] # 将 DataFrame 的索引设置为列名
df = df.sort_index() # 对列进行排序
df = df.reset_index() # 将排序后的索引转换为列