Python:从CSV文件中提取每日/每小时余额

时间:2015-08-27 20:51:25

标签: python sqlite csv

我有一个长文件,特别是这两列:

   Balance     Time
   1000.01     2015-08-23 19:53:23
   1235.21     2015-08-23 17:32:42
    394.33     2015-08-22 23:32:12
    534.45     2015-08-22 13:44:12
    235.21     2015-08-22 13:22:51

如何为列表/向量写入所有行的当天最后余额(最终为小时HH:59:59)?也许使用SQLite?

更新

我找到了一个解决方案,一次从日期中提取了一个数组,并从csv文件中平衡 bal ,但我想知道是否有一种不那么难看的方法。也许使用熊猫。

    import datetime as dt
    delta=dt.timedelta(hours=1)            
    new_date=dt.datetime.strptime(start_date, "%Y-%m-%d %H:%M:%S")+delta
    for i in range(len(bal)):
        if dt.datetime.strptime(dates[i], "%Y-%m-%d %H:%M:%S")>new_date:
            hours_diff=int((dt.datetime.strptime(dates[i], "%Y-%m-%d %H:%M:%S")-new_date).total_seconds()/3600)
            while dt.datetime.strptime(dates[i], "%Y-%m-%d %H:%M:%S")>new_date:
                hourly_time.append(dt.datetime.strftime(new_date,"%Y-%m-%d %H:%M:%S"))
                new_date+=delta
                hourly_bal.append(hourly_bal[-1])
            hourly_bal[-1]=bal[i-1]
    hourly_time.append(dt.datetime.strftime(new_date,"%Y-%m-%d %H:%M:%S"))
    hourly_bal.append(bal[-1])

1 个答案:

答案 0 :(得分:0)

使用pandas - 它非常适合处理时间序列数据。

假设您想要的输出是这样的?

   Balance     Time                   LastBalance
   1000.01     2015-08-23 19:53:23    235.21
   1235.21     2015-08-23 17:32:42    235.21
    235.21     2015-08-22 17:32:42    -