import numpy as np
import pandas as pd
df = pd.DataFrame()
column_names = ['x','y','z','mean']
for col in column_names:
df[col] = np.random.randint(0,100, size=10000)
คุณสามารถลองวิธีแก้ไขปัญหาต่อไปนี้:
โซลูชันที่ 1:
df = df[ ['mean'] + [ col for col in df.columns if col != 'mean' ] ]
โซลูชันที่ 2:
df = df[['mean', 'x', 'y', 'z']]
โซลูชันที่ 3:
col = df.pop("mean")
df = df.insert(0, col.name, col)
โซลูชันที่ 4:
df.set_index(df.columns[-1], inplace=True)
df.reset_index(inplace=True)
โซลูชันที่ 5:
cols = list(df)
cols = [cols[-1]] + cols[:-1]
df = df[cols]
โซลูชันที่ 6:
order = [1,2,3,0] # setting column's order
df = df[[df.columns[i] for i in order]]
เปรียบเทียบเวลา:
โซลูชันที่ 1:
เวลาซีพียู: ผู้ใช้ 1.05 ms, sys: 35 ,s, ทั้งหมด: 1.08 ms เวลาผนัง: 995 µs
โซลูชันที่ 2 :
เวลาซีพียู: ผู้ใช้ 933 ,s, sys: 0 ns, ทั้งหมด: 933 µs เวลาผนัง: 800 µs
โซลูชันที่ 3 :
เวลาซีพียู: ผู้ใช้ 0 ns, sys: 1.35 ms, ทั้งหมด: 1.35 ms เวลาผนัง: 1.08 ms
โซลูชันที่ 4 :
เวลาซีพียู: ผู้ใช้ 1.23 ms, sys: 45 ,s, ทั้งหมด: 1.27 ms เวลาผนัง: 986 µs
โซลูชันที่ 5 :
เวลาซีพียู: ผู้ใช้ 1.09 ms, sys: 19 µs, ทั้งหมด: 1.11 ms เวลาผนัง: 949 µs
โซลูชันที่ 6 :
เวลาซีพียู: ผู้ใช้ 955 ,s, sys: 34 totals, ทั้งหมด: 989 µs เวลาผนัง: 859 µs