Python 汇总并比较索引

Python 汇总并比较索引,python,datetime,indexing,Python,Datetime,Indexing,我有多个带有unix时间戳的csv文件,用作DateTimeIndex,我想比较一下 单个文件的示例: Unixtime Value 1525328729150.00 15.06 1525328729943.00 16.05 1525328730741.00 16.32 1525328731536.00 16.35 1525328732335.00 16.87 1525328733131.00 16.99 1525328733932.00

我有多个带有unix时间戳的csv文件,用作DateTimeIndex,我想比较一下

单个文件的示例:

Unixtime           Value     
1525328729150.00   15.06
1525328729943.00   16.05
1525328730741.00   16.32
1525328731536.00   16.35
1525328732335.00   16.87
1525328733131.00   16.99
1525328733932.00   17.45
1525328734731.00   17.65
目前,我正在使用以下(代码片段)设置DatetimeIndex(工作正常):

但是,当我想在特定时间比较两个不同文件的值时,有几个问题:

  • 文件中的时间不完全匹配。在一个文件中可能是01:443秒,在另一个文件中可能是01:247秒
  • 四舍五入到一秒或500毫秒会导致索引可能被跳过或复制的问题。四舍五入到500毫秒可以四舍五入到01:443到01:500,但是01:247到01:000
  • 我尝试了几种方法:

  • 将int64整数四舍五入
  • 将DatetimeIndex四舍五入
  • 到目前为止,已尝试使用

    np.round(data[i].index.astype(np.int64), -13).astype('datetime64[ns]')
    

    但似乎没有一个能起作用,也没有一个能为我提供我所需要的解决方案,即(大致)同时减去两个值。
    最好的方法是什么?

    我用

    round_amount = 1*1*1000000000
    data[i].index = pd.DatetimeIndex(((data[i].index.asi8/(round_amount)).round()*round_amount).astype(np.int64))
    
    它将日期时间索引舍入到最接近的秒

    pd.DatetimeIndex(((data[i].index.asi8/(1e13*60)).round()*1e13*60)
    .astype(np.int64)).values
    
    ns1min=1*60*1000000000   # 1 minute in nanoseconds 
    pd.to_datetime(((data[i].index.astype(np.int64) // ns1min + 1 ) * ns1min))
    
    pandas.DatetimeIndex.round
    
    round_amount = 1*1*1000000000
    data[i].index = pd.DatetimeIndex(((data[i].index.asi8/(round_amount)).round()*round_amount).astype(np.int64))