【问题标题】:How to re-order dataframe fields?如何重新排序数据框字段?
【发布时间】:2014-04-02 16:22:02
【问题描述】:

我在下面的 DataFrame 中包含下表:

timestamp   val1    val2    user_id  val3  val4    val5    val6
01/01/2011  1   100 3    5     100     3       5
01/02/2013  20  8        6     12      15      3
01/07/2012      19  57   10    9       6       6        
01/11/2014  3100    49  6        12    15      3
21/12/2012          240  30    240     30       
14/09/2013      21  63                  
01/12/2013  3200    51  20       50

我想知道如何获得另一个数据帧,其中字段/列将以这种方式重新排序:timestamp、user_id、val1、val2、val3。

用于获取上表的代码是:

import pandas as pd

newnames = ['timestamp', 'val1', 'val1','val2', 'val3','user_id']
df = pd.read_csv('mytest.csv', names = newnames, header = False, parse_dates=True, dayfirst=True)
df['timestamp'] = pd.to_datetime(df['timestamp'], dayfirst=True) 

提前感谢您的帮助。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    试试这个

    df = df.loc[:,['timestamp', 'user_id', 'val1', 'val2', 'val3']]
    

    【讨论】:

    • @user3102882 是的。 +1
    • 也许是因为我已经扩展到更多的列,它对我不起作用。
    • @user3102882 你得到什么错误?即使原始 df 有更多列,它也对我有用。
    • @astrel 没有错误消息。但是自从你上次的 cmets 我再次检查了它:那是我的错误(压倒一切)。此外,它工作正常。非常感谢。
    • 使用 .loc 而不是 df[['timestamp', 'user_id', 'val1', 'val2', 'val3']] 有什么好处吗?
    猜你喜欢
    • 2021-10-06
    • 2023-03-04
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 2023-03-10
    • 2019-02-12
    相关资源
    最近更新 更多