如何在Pandas DataFrame中反转列数据并保留列标签?
反转Pandas DataFrame列数据但保留列标签
你当前用df.iloc[:, ::-1]的方式会同时反转列的顺序与标签,若要仅反转每一行的列数据、保留原列标签,可采用以下两种简洁方法:
方法一:直接赋值反转后的数值数组
通过提取反转后的纯数据数组,直接替换原DataFrame的数值部分,不改动列标签:
import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) # 获取反转列后的数值数组,赋值给原DataFrame以保留列标签 df[:] = df.iloc[:, ::-1].values print(df)
方法二:逐行反转数据
使用apply对每一行执行反转操作,确保列标签保持原顺序:
import pandas as pd df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}) # 按行反转数据,axis=1表示对行操作 df = df.apply(lambda x: x[::-1], axis=1) print(df)
两种方法执行后,都会得到你期望的结果:
A B C 0 7 4 1 1 8 5 2 2 9 6 3
内容的提问来源于stack exchange,提问作者Murilo
相关产品推荐
相关产品推荐

