df.reindex(columns=reversed(df.columns))是按列反转pandas.DataFrame的最快方法吗?

最佳答案

一个想法-将DataFrame.iloc与索引一起使用:

df = df.iloc[:, ::-1]


性能:

np.random.seed(234)

df = pd.DataFrame(np.random.randint(10, size=(3, 10000))).rename(columns=str)
#print (df)

In [225]: %timeit df.reindex(columns=reversed(df.columns))
7.32 ms ± 166 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [226]: %timeit df.iloc[:, ::-1]
132 µs ± 6.02 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

#vdkotian solution
In [227]: %timeit df[df.columns[::-1]]
2.84 ms ± 60.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

10-06 05:17
查看更多