【问题标题】:Pandas To datetime & Cumsum MillisecondsPandas To datetime 和 Cumsum 毫秒
【发布时间】:2018-10-18 09:28:51
【问题描述】:

我有几个问题。

首先,我想在 pandas 数据框中进行日期时间。

像这样... 2018/03/06 00:01:27:744

如何替换这个日期时间?

然后..第二个..

        Time                  Sensor1         Sensor2    TimeCumsum
2018/03/06 00:01:27:744         0               1            
2018/03/06 00:01:27:759         0               1
2018/03/06 00:01:27:806         0               1            0.15
2018/03/06 00:01:27:838         1               1    
2018/03/06 00:01:28:009         1               1            0.2
2018/03/06 00:01:28:056         1               0            ...

当 Sensor1 为 0 且 Sensor2 为 1 时,我想要 Time Seconds cumsum。

我该怎么做?

谢谢。

【问题讨论】:

  • The docs for time 和 the docs for resample 以帮助您获得 cumsum。您需要执行df = df.assign(seconds = df.dt.seconds) 之类的操作来获得一列秒数,然后使用.resample.cumsum 来获得答案。
  • 那个to_datetime是用这个吗??毫秒是正确的吗? :( ..

标签: python pandas datetime series cumsum


【解决方案1】:

我认为需要:

df['Time'] = pd.to_datetime(df['Time'], format='%Y/%m/%d %H:%M:%S:%f')

m = (df['Sensor1'].eq(0) & df['Sensor2'].eq(1))
df['col'] = df.loc[m, 'Time'].dt.microsecond.cumsum() // 10**3
print (df)
                     Time  Sensor1  Sensor2     col
0 2018-03-06 00:01:27.744        0        1   744.0
1 2018-03-06 00:01:27.759        0        1  1503.0
2 2018-03-06 00:01:27.806        0        1  2309.0
3 2018-03-06 00:01:27.838        1        1     NaN
4 2018-03-06 00:01:28.009        1        1     NaN
5 2018-03-06 00:01:28.056        1        0     NaN

【讨论】:

  • 假设...但是我看到了这个错误...“ValueError: cannot reindex from a duplicate axis”.. 不要添加到 df.. 你能再帮我一次吗?比耶斯瑞尔。
  • @GrayHash - print (df.index) 是什么?
  • @GrayHash - 你能解释一下预期输出中的0.15 吗?
  • 抱歉,我的数据框中的 df 不正确。长度不一样。我怎样才能给 df 这意味着... em.. df[df["Sensor1]==0 & df["Sensor2"]==1] 对吗?
  • 可能我不明白cumsum0.150.2 的值。你能解释更多吗?
猜你喜欢
  • 2015-01-10
  • 2014-08-07
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 2016-03-15
  • 1970-01-01
相关资源
最近更新 更多