zoukankan      html  css  js  c++  java
  • 更改 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')

      最终的处理结果:

        

  • 相关阅读:
    ADO.NET操作PostgreSQL:数据库操作类(未封装)
    ADO.NET操作SQL Server:数据库操作类(已封装)
    ADO.NET操作SQL Server:数据库操作类(未封装)
    h5微信支付
    css3的transform:tanslateZ没有效果
    判断页面是否被嵌入iframe里面
    vue项目的环境变量
    iOS下调用元素的focus方法,input元素不聚焦,键盘不弹起的问题
    关于common.js里面的module.exports与es6的export default的思考总结
    Vue2.4.0 新增的inheritAttrs,attrs
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/8385991.html
Copyright © 2011-2022 走看看