如何更改 pandas dataframe 中两列的位置

时间:2021-05-22

如何更改 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 中两列的位置就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章