【问题标题】:How do subtraction between timestamp two rows per two with shift - Pandas Python如何使用移位在时间戳两行之间进行减法 - Pandas Python
【发布时间】:2021-03-11 14:33:23
【问题描述】:

我想在 pandas python 中用 date_time 做减法,但是换了两行,我不知道函数

Timestamp
2020-11-26 20:00:00
2020-11-26 21:00:00
2020-11-26 22:00:00
2020-11-26 23:30:00

解释:

(2020-11-26 21:00:00) - (2020-11-26 20:00:00)
(2020-11-26 23:30:00) - (2020-11-26 22:00:00)

结果必须是:

01:00:00
01:30:00

【问题讨论】:

  • df["Timestamp"].diff().iloc[1::2]?

标签: python pandas dataframe datetime timestamp


【解决方案1】:

首先,您需要检查这是否为日期时间类型。 如果没有,请执行 pd.to_datetime()

demo = pd.DataFrame(columns=['Timestamps'])
demotime = ['20:00:00','21:00:00','22:00:00','23:30:00']
demo['Timestamps'] = demotime
demo['Timestamps'] = pd.to_datetime(demo['Timestamps'])

您的数据框如下所示:

    Timestamps
0   2020-11-29 20:00:00
1   2020-11-29 21:00:00
2   2020-11-29 22:00:00
3   2020-11-29 23:30:00

之后,您可以使用 for 循环或 while 并在其中执行以下操作:

demo.iloc[i+1,0]-demo.iloc[i,0]

【讨论】:

    【解决方案2】:

    IIUC,您想迭代两个块并找到差异,一种方法是:

    res = df.groupby(np.arange(len(df)) // 2).diff().dropna()
    print(res)
    

    输出

            Timestamp
    1 0 days 01:00:00
    3 0 days 01:30:00
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多