当Data Group by时,我怎么能在pandas DataFrame中收集毫秒?

时间:2018-05-15 04:11:25

标签: pandas milliseconds cumsum

当使用group by的数据时,我怎么能在df中用cumum millisenconds?

输入如下:

输入:

time                        key            isValue
2018-03-04 00:00:06.520      1               NaN
2018-03-04 00:00:07.230      1               NaN
2018-03-04 00:00:08.140      1                1
2018-03-04 00:00:08.720      1                1
2018-03-04 00:00:09.110      1                1
2018-03-04 00:00:09.650      1               NaN
2018-03-04 00:00:10.360      1               NaN
2018-03-04 00:00:11.150      1               NaN
2018-03-04 00:00:11.770      2               NaN
2018-03-04 00:00:12.320      2               NaN
2018-03-04 00:00:12.910      2                1
2018-03-04 00:00:13.250      2                1
2018-03-04 00:00:13.960      2                1
2018-03-04 00:00:14.550      2               NaN
2018-03-04 00:00:15.250      2               NaN
....

我想在这里输出输出。

输出

key : time
1 : 1.030
2 : 1.050
3 : X.xxx
4 : X.xxx
....

好吧,我正在使用此代码

df.groupby(["key"])["time"].cumsum()

我认为不是正确的代码。

1 个答案:

答案 0 :(得分:1)

我认为需要:

df['new'] = df["time"].dt.microsecond.groupby(df["key"]).cumsum() / 1000
print (df)
                      time  key  isValue     new
0  2018-03-04 00:00:06.520    1      NaN   520.0
1  2018-03-04 00:00:07.230    1      NaN   750.0
2  2018-03-04 00:00:08.140    1      1.0   890.0
3  2018-03-04 00:00:08.720    1      1.0  1610.0
4  2018-03-04 00:00:09.110    1      1.0  1720.0
5  2018-03-04 00:00:09.650    1      NaN  2370.0
6  2018-03-04 00:00:10.360    1      NaN  2730.0
7  2018-03-04 00:00:11.150    1      NaN  2880.0
8  2018-03-04 00:00:11.770    2      NaN   770.0
9  2018-03-04 00:00:12.320    2      NaN  1090.0
10 2018-03-04 00:00:12.910    2      1.0  2000.0
11 2018-03-04 00:00:13.250    2      1.0  2250.0
12 2018-03-04 00:00:13.960    2      1.0  3210.0
13 2018-03-04 00:00:14.550    2      NaN  3760.0
14 2018-03-04 00:00:15.250    2      NaN  4010.0