【问题标题】:Organizing data rows in order of dates Pandas Python按日期顺序组织数据行 Pandas Python
【发布时间】:2021-12-21 22:25:06
【问题描述】:

我将如何用 pandas 组织 csv 文件,以便它组织从最旧到最新日期的行。 data.csv 中的日期值是杂乱无章的,我可以实现哪些代码以便获得下面的预期输出?

代码:

data = pd.read_csv('data.csv')
dates= pd.to_datetime(data['Date'].to_list())

data.csv 文件内容:

Unix Timestamp,Date,Symbol,Open,High,Low,Close,Volume
1635686100,2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714
1635686220,2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
1635686160,2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967

预期输出:

Unix Timestamp,Date,Symbol,Open,High,Low,Close,Volume
1635686220,2021-10-31 13:17:00,BTCUSD,60638.0,60640.0,60636.0,60638.0,0.4357009185659157
1635686160,2021-10-31 13:16:00,BTCUSD,60568.0,60640.0,60568.0,60638.0,3.9771881707839967
1635686100,2021-10-31 13:15:00,BTCUSD,60620.0,60633.0,60565.0,60568.0,1.3977284440628714

【问题讨论】:

    标签: python pandas dataframe csv datetime


    【解决方案1】:

    先通过参数parse_datesDate列转换为datetimes再使用DataFrame.sort_values

    data = pd.read_csv('data.csv', parse_dates=['Date'])
    
    data = data.sort_values('Date', ascending=False, ignore_index=True)
    print (data)
       Unix Timestamp                Date  Symbol     Open     High      Low  \
    0      1635686220 2021-10-31 13:17:00  BTCUSD  60638.0  60640.0  60636.0   
    1      1635686160 2021-10-31 13:16:00  BTCUSD  60568.0  60640.0  60568.0   
    2      1635686100 2021-10-31 13:15:00  BTCUSD  60620.0  60633.0  60565.0   
    
         Close    Volume  
    0  60638.0  0.435701  
    1  60638.0  3.977188  
    2  60568.0  1.397728  
    

    【讨论】:

    • 投反对票,如果我的回答有问题,请告诉我,以便我更正。谢谢。
    • 我认为只是通常的随机 DV,如果这是一个机器人,以后可能会恢复,同时获得 +1 ;)
    • @mozway - 谢谢。
    • 我赞成它,因为这是合法的解决方案:)
    • 也赞成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2016-06-10
    • 1970-01-01
    • 2018-11-12
    • 2018-09-29
    • 2021-10-16
    相关资源
    最近更新 更多