我正在使用 pandas v0.25.3。我缺乏经验但正在学习。 我有一个数据框,想交换两列的内容,使列标签和序列保持不变。
df = pd.DataFrame ({"A": [(1),(2),(3),(4)],
'B': [(5),(6),(7),(8)],
'C': [(9),(10),(11),(12)]})
这会产生一个数据框,
A B C
0 1 5 9
1 2 6 10
2 3 7 11
3 4 8 12
我想交换列内容 B 和 C 以获得
A B C
0 1 9 5
1 2 10 6
2 3 11 7
3 4 12 8
我尝试查看 pd.DataFrame.values,它将我发送到 numpy 数组和高级切片,但迷路了。 最简单的方法是什么?
最佳答案
您可以分配 numpy 数组:
#pandas 0.24+
df[['B','C']] = df[['C','B']].to_numpy()
#oldier pandas versions
df[['B','C']] = df[['C','B']].values
或者使用DataFrame.assign
:
df = df.assign(B = df.C, C = df.B)
<小时/>
print (df)
A B C
0 1 9 5
1 2 10 6
2 3 11 7
3 4 12 8
关于python - Pandas - 如何交换列内容,保持标签序列完整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59660577/