我们可以编写一个函数来更改数据帧中列的顺序。下面是一个可用的示例代码,它接受一个数据帧以及要交换位置的两个列的名称作为参数。
import pandas as pd
def change_col_sequence(df, col1, col2):
cols = df.columns.tolist()
idx1, idx2 = cols.index(col1), cols.index(col2)
cols[idx1], cols[idx2] = cols[idx2], cols[idx1]
return df[cols]
# 示例
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
print("原数据帧:")
print(df)
df = change_col_sequence(df, 'B', 'A')
print("交换 A 和 B 的位置后的数据帧:")
print(df)
输出:
原数据帧:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
交换 A 和 B 的位置后的数据帧:
B A C
0 4 1 7
1 5 2 8
2 6 3 9
这个函数使用df.columns.tolist()
来获取列名的列表。然后,我们使用cols.index(col1)
和cols.index(col2)
获取列col1
和col2
的索引。接下来,我们使用拆包技巧将这些索引对应的列位置互换。最后,我们使用df[cols]
返回新顺序的数据帧。