6.4 KiB
在 Python 中改变熊猫数据帧的列顺序的 4 种方法
原文:https://www.askpython.com/python-modules/pandas/change-the-column-order-dataframe
在本教程中,我们将讨论如何改变一个给定的 pandas DataFrame 对象的列顺序。在数据预处理阶段,我们可能会遇到这样一种情况,即相关的 pandas 数据帧的列没有按照期望的顺序排列,那么我们必须改变数据帧的列顺序。
如何改变熊猫数据框的列顺序?
让我们来看看在 Pandas 中改变数据帧的列顺序的不同方法。
方法 1:使用所需的顺序列列表
这是改变 pandas DataFrame 对象的列顺序的最简单的方法之一。在这个方法中,我们简单地将 DataFrame 的列的 Python 列表以期望的顺序传递给 DataFrame 对象。让我们看看如何用 Python 编写这个方法。
# Method-1
# Import pandas Python module
import pandas as pd
# Create a pandas DataFrame
df = pd.DataFrame({'Roll': [111, 112, 113, 114, 115],
'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45]})
print('Given pandas DataFrame:\n')
print(df)
# Change the order of the DataFrame
# Using the desired order columns list
df_1 = df[['Name', 'CGPA', 'Roll', 'Branch']]
print('\nPandas DataFrame with changed column order:\n')
print(df_1)
输出:
Given pandas DataFrame:
Roll Name Branch CGPA
0 111 Sanjay ECE 8.15
1 112 Aman ICE 9.03
2 113 Ankit IT 7.85
3 114 Ravi CSE 8.55
4 115 Komal CHE 9.45
Pandas DataFrame with changed column order:
Name CGPA Roll Branch
0 Sanjay 8.15 111 ECE
1 Aman 9.03 112 ICE
2 Ankit 7.85 113 IT
3 Ravi 8.55 114 CSE
4 Komal 9.45 115 CHE
方法 2:使用 loc 方法
在这个方法中,我们将利用 pandas DataFrame 类的loc方法。使用loc方法,我们可以通过提供列名的 Python 列表来重新排序 pandas DataFrame 对象的列。让我们编写 Python 代码来实现这个方法。
# Method-2
# Import pandas Python module
import pandas as pd
# Create a pandas DataFrame
df = pd.DataFrame({'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
'Roll': [111, 112, 113, 114, 115],
'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45]})
print('Given pandas DataFrame:\n')
print(df)
# Change the order of the DataFrame
# Using the loc method of pandas DataFrame class
df_2 = df.loc[2:4, ['Roll', 'Name', 'CGPA', 'Branch']]
print('\nPandas DataFrame with changed column order:\n')
print(df_2)
输出:
Given pandas DataFrame:
Name Roll Branch CGPA
0 Sanjay 111 ECE 8.15
1 Aman 112 ICE 9.03
2 Ankit 113 IT 7.85
3 Ravi 114 CSE 8.55
4 Komal 115 CHE 9.45
Pandas DataFrame with changed column order:
Roll Name CGPA Branch
2 113 Ankit 7.85 IT
3 114 Ravi 8.55 CSE
4 115 Komal 9.45 CHE
方法 3:使用 iloc 方法
在这个方法中,我们将使用 pandas DataFrame 类的iloc方法。使用iloc方法,我们可以通过提供列索引的 Python 列表(即 0,1,2,3,…)而不是列名来重新排序 pandas DataFrame 对象的列。让我们看看如何通过 Python 代码实现这个方法。
# Method-3
# Import pandas Python module
import pandas as pd
# Create a pandas DataFrame
df = pd.DataFrame({'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45],
'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
'Roll': [111, 112, 113, 114, 115],
'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE']})
print('Given pandas DataFrame:\n')
print(df)
# Change the order of the DataFrame
# Using the iloc method of pandas DataFrame class
df_3 = df.iloc[1:4, [1, 2, 0, 3]]
print('\nPandas DataFrame with changed column order:\n')
print(df_3)
输出:
Given pandas DataFrame:
CGPA Name Roll Branch
0 8.15 Sanjay 111 ECE
1 9.03 Aman 112 ICE
2 7.85 Ankit 113 IT
3 8.55 Ravi 114 CSE
4 9.45 Komal 115 CHE
Pandas DataFrame with changed column order:
Name Roll CGPA Branch
1 Aman 112 9.03 ICE
2 Ankit 113 7.85 IT
3 Ravi 114 8.55 CSE
**注意:**在上面的两个方法loc和iloc中,我们有一个额外的优势,即在给定的 pandas DataFrame 对象中只选择一系列行。
方法 4:使用 reindex()函数
在这个方法中,我们将使用 pandas DataFrame 对象的reindex()函数。使用reindex()函数,我们可以通过传递列名的 Python 列表来重新排列 pandas DataFrame 对象的列顺序。让我们通过 Python 代码来实现这个方法。
# Method-4
# Import pandas Python module
import pandas as pd
# Create a pandas DataFrame
df = pd.DataFrame({'Branch': ['ECE', 'ICE', 'IT', 'CSE', 'CHE'],
'CGPA': [8.15, 9.03, 7.85, 8.55, 9.45],
'Name': ['Sanjay', 'Aman', 'Ankit', 'Ravi', 'Komal'],
'Roll': [111, 112, 113, 114, 115]})
print('Given pandas DataFrame:\n')
print(df)
# Change the order of the DataFrame
# Using the reindex() function of pandas DataFrame class
df_4 = df.reindex(columns = ['Roll', 'CGPA', 'Name', 'Branch'])
print('\nPandas DataFrame with changed column order:\n')
print(df_4)
输出:
Given pandas DataFrame:
Branch CGPA Name Roll
0 ECE 8.15 Sanjay 111
1 ICE 9.03 Aman 112
2 IT 7.85 Ankit 113
3 CSE 8.55 Ravi 114
4 CHE 9.45 Komal 115
Pandas DataFrame with changed column order:
Roll CGPA Name Branch
0 111 8.15 Sanjay ECE
1 112 9.03 Aman ICE
2 113 7.85 Ankit IT
3 114 8.55 Ravi CSE
4 115 9.45 Komal CHE
总结
在本教程中,我们学习了如何用四种不同的方法来改变 pandas DataFrame 对象的列顺序。希望你已经理解了上面讨论的所有方法,并且很乐意自己使用它们。感谢您的阅读,请继续关注我们,了解更多关于 Python 编程的精彩内容。