1

我有一个数据框(df),其索引为“ %Y-%m-%d %H:%M:%S.%f”格式的日期时间索引,即2012-06-16 15:53:42.457000

我正在尝试使用 groupby 方法创建 1 秒的组,即

x= df.groupby(pd.TimeGrouper('1S'))
time=x.first().index[1]
print time

问题是使用 groupby 方法我只能以秒为单位获取时间戳,即 " 2012-06-16 15:53:42" ,毫秒被排除在外。有没有办法获得完整的时间戳?谢谢你

4

2 回答 2

1

我认为这是格式问题。

> df.index[0].strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
'2016-01-01 00:00:00.000'

文档在这里

于 2016-07-07T12:04:23.280 回答
0

花了几个小时后,我解决了它。groupby、rolling 等功能也出现了同样的问题。这些函数使用通用日期时间索引进行分组,该索引在数学上是定义频率的倍数。keyerror如果该索引用于获取数据帧的数据,则有可能获得。

要获取完整的日期时间索引(以毫秒为单位),请访问由 groupby 方法创建的单个组成员的白天索引。IE

time=  x2.first()['timeindex'][0]

timeindex我的数据框中的在哪里datetime index。[0] 是组的第一个成员的日期时间索引,可以递增得到每个组的第二个、第三个等成员的日期时间索引。

于 2016-07-08T00:22:10.467 回答