python - Pandas - 如何交换列内容,保持标签序列完整?

标签 python pandas

我正在使用 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/

相关文章:

Python Dataframe 获取空值计数

python - 当有很多选择时如何提高我的 pandas 效率

python - 当 sharex 时,使刻度标签在 pandas 图中可见

python - 使用 BeautifulSoup 从表中的单元格中提取值

python - 使用 Python 的 HDF 文件中的数据丢失

python - 如何通过带有请求的多部分 POST 来发布 Image 对象?

python - 如何在 python 中更快地写入文件?

python - 在 python 中暂停和恢复线程

pandas Multiindex,仅对一个级别的值进行排序

python - Pandas - 使用其他列值作为列名选择列