【问题标题】:Arranging timestamp according to required condition根据需要的条件安排时间戳
【发布时间】:2020-06-02 07:27:41
【问题描述】:

我在下面的嵌套列表中存储了时间戳值列表。

[[1462692695.0, 1462857370.0, 1463297496.0], 

[1466695088.0, 1466933174.0, 1467067583.0, 1467252502.0, 1467253381.0],

[1455009108.0, 1455218354.0, 1455221295.0], 

[1456098479.0, 1456242604.0, 1456277812.0, 1456683177.0]]

我想找出每个嵌套列表值的第二和第一、第三和第二等等之间的区别。

例如: 新创建的差异列表:

[[164675,440126],
 [...,...,...,...],
....]

【问题讨论】:

    标签: python python-3.x list dataframe timestamp


    【解决方案1】:

    This answer 可能会有所帮助(仅使用内置 python 函数):

    x = [[1462692695.0, 1462857370.0, 1463297496.0], [1466695088.0, 1466933174.0, 1467067583.0, 1467252502.0, 1467253381.0], [1455009108.0, 1455218354.0, 1455221295.0], [1456098479.0, 1456242604.0, 1456277812.0, 1456683177.0]]
    [[t - s for s, t in zip(a, a[1:])] for a in x]
    

    结果:

    [[164675.0, 440126.0],
    [238086.0, 134409.0, 184919.0, 879.0],
    [209246.0, 2941.0],
    [144125.0, 35208.0, 405365.0]]
    

    【讨论】:

      【解决方案2】:

      你可以试试这个。

      for lst in time_stamp_list:
          for x,y in zip(lst[1:],lst):
              print(x-y)
      

      上面可以写成列表推导式。

      [[x-y for x,y in zip(lst[1:],lst) ] for lst in time_stamp_list]
      

      【讨论】:

        【解决方案3】:

        由于您标记了dataframe,这里有一个pandas 解决方案:

        x = [[1462692695.0, 1462857370.0, 1463297496.0], [1466695088.0, 1466933174.0, 1467067583.0, 1467252502.0, 1467253381.0], [1455009108.0, 1455218354.0, 1455221295.0], [1456098479.0, 1456242604.0, 1456277812.0, 1456683177.0]]
        
        df = pd.DataFrame(x)
        
        print (df.diff(axis=1).stack().groupby(level=0).apply(list).tolist())
        

        或者使用嵌套列表推导:

        print ([[b-a for a,b in zip(i, i[1:])] for i in x])
        

        结果:

        [[164675.0, 440126.0], [238086.0, 134409.0, 184919.0, 879.0], [209246.0, 2941.0], [144125.0, 35208.0, 405365.0]]
        

        【讨论】:

        • 非常感谢。它起作用了,另外,如果我想找到最后一个时间戳和第一个时间戳之间的区别。应该做哪些改变?
        • 对于每个组,您想要第一个和最后一个之间的差异,所以每个组一个值?如果是这样,请使用[i[-1]-i[0] for i in x]
        猜你喜欢
        • 1970-01-01
        • 2014-12-24
        • 2014-09-20
        • 2019-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-27
        相关资源
        最近更新 更多