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

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

把其中的某列移到第一列的位置。

原来的 df 是:

df = pd.read_csv('I:/Papers/consumer/codeandpaper/TmallData/result01.csv')

Net Upper Lower Mid Zsore

Answer option

More than once a day 0% 0.22% -0.12% 2 65

Once a day 0% 0.32% -0.19% 3 45

Several times a week 2% 2.45% 1.10% 4 78

Once a week 1% 1.63% -0.40% 6 65

要将 Mid 这一列移动到第一列?

               Mid Upper Lower Net Zsore

Answer option

More than once a day 2 0.22% -0.12% 0% 65

Once a day 3 0.32% -0.19% 0% 45

Several times a week 4 2.45% 1.10% 2% 78

Once a week 6 1.63% -0.40% 1% 65

解决办法:(使用 ix )

法一:

In [27]:

# get a list of columns

cols = list(df)

# move the column to head of list using index, pop and insert

cols.insert(0, cols.pop(cols.index('Mid')))

cols

Out[27]:

['Mid', 'Net', 'Upper', 'Lower', 'Zsore']

In [28]:

# use ix to reorder

df = df.ix[:, cols]

df

Out[28]:

Mid Net Upper Lower Zsore

Answer_option

More_than_once_a_day 2 0% 0.22% -0.12% 65

Once_a_day 3 0% 0.32% -0.19% 45

Several_times_a_week 4 2% 2.45% 1.10% 78

Once_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)

df

Out[39]:

Mid Net Upper Lower Zsore

Answer_option

More_than_once_a_day 2 0% 0.22% -0.12% 65

Once_a_day 3 0% 0.32% -0.19% 45

Several_times_a_week 4 2% 2.45% 1.10% 78

Once_a_week 6 1% 1.63% -0.40% 65

#### full data

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

以上是 如何更改 pandas dataframe 中两列的位置 的全部内容, 来源链接: utcz.com/z/336091.html

回到顶部