如何更改 pandas dataframe 中两列的位置:
把其中的某列移到第一列的位置。
原来的 df 是:
df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01.csv') Net Upper Lower Mid ZsoreAnswer option More than once a day 0% 0.22% -0.12% 2 65 Once a day 0% 0.32% -0.19% 3 45Several times a week 2% 2.45% 1.10% 4 78Once a week 1% 1.63% -0.40% 6 65要将 Mid 这一列移动到第一列?
Mid Upper Lower Net ZsoreAnswer option More than once a day 2 0.22% -0.12% 0% 65 Once a day 3 0.32% -0.19% 0% 45Several times a week 4 2.45% 1.10% 2% 78Once a week 6 1.63% -0.40% 1% 65解决办法:(使用 ix )
法一:
In [27]:# get a list of columnscols = list(df)# move the column to head of list using index, pop and insertcols.insert(0, cols.pop(cols.index('Mid')))colsOut[27]:['Mid', 'Net', 'Upper', 'Lower', 'Zsore']In [28]:# use ix to reorderdf = df.ix[:, cols]dfOut[28]: Mid Net Upper Lower ZsoreAnswer_option More_than_once_a_day 2 0% 0.22% -0.12% 65Once_a_day 3 0% 0.32% -0.19% 45Several_times_a_week 4 2% 2.45% 1.10% 78Once_a_week 6 1% 1.63% -0.40% 65法二:
In [39]:mid = df['Mid']df.drop(labels=['Mid'], axis=1,inplace = True)df.insert(0, 'Mid', mid)dfOut[39]: Mid Net Upper Lower ZsoreAnswer_option More_than_once_a_day 2 0% 0.22% -0.12% 65Once_a_day 3 0% 0.32% -0.19% 45Several_times_a_week 4 2% 2.45% 1.10% 78Once_a_week 6 1% 1.63% -0.40% 65#### full datadf = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01.csv')def func(x): return str(x['time_stamp'])+str(x['user_id'])df['session_id'] = df.apply(func, axis=1)del df['time_stamp']sessionID=df['session_id']df.drop(labels=['session_id'],axis=1,inplace=True)df.insert(0,'session_id',sessionID)df.to_csv('I:/Papers/consumer/codeandpaper/TmallData/result02.csv')
最终的处理结果:
以上这篇如何更改 pandas dataframe 中两列的位置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。