gpt4 book ai didi

python - Pandas :如何在毫秒间使用 between_time?

转载 作者:太空狗 更新时间:2023-10-30 02:55:07 24 4
gpt4 key购买 nike

考虑一下:

import pandas as pd
import numpy as np

idx2=[pd.to_datetime('2016-08-31 22:08:12.000'),
pd.to_datetime('2016-08-31 22:08:12.200'),
pd.to_datetime('2016-08-31 22:08:12.400')]

test=pd.DataFrame({'value':[1,1,3], 'groups' : ['A',np.NaN,'A']},index=idx2)
test
Out[27]:
groups value
2016-08-31 22:08:12.000 A 1
2016-08-31 22:08:12.200 NaN 1
2016-08-31 22:08:12.400 A 3

我只需要保留 22:08:12.20022:08:12.400 之间的数据,所以我很自然地使用 between_time:

test.between_time('22:08:12.200','22:08:12.400')

给予

ValueError: Cannot convert arg ['22:08:12.200'] to a time

这里有什么问题?如何根据时间和毫秒信息对我的 dataframe 进行切片?

最佳答案

我不确定为什么直接字符串不起作用,但它看起来与来自字符串的 datetime 的时间转换有关。但是您可以通过显式转换为 time 来解决问题:

代码:

test.between_time(*pd.to_datetime(['22:08:12.200', '22:08:12.400']).time)

测试代码:

import pandas as pd
import numpy as np

idx2 = [
pd.to_datetime('2016-08-31 22:08:12.000'),
pd.to_datetime('2016-08-31 22:08:12.200'),
pd.to_datetime('2016-08-31 22:08:12.400')]

test = pd.DataFrame(
{'value': [1, 1, 3], 'groups': ['A', np.NaN, 'A']}, index=idx2)

print(test.between_time(
*pd.to_datetime(['22:08:12.200', '22:08:12.400']).time))

结果:

                        groups  value
2016-08-31 22:08:12.200 NaN 1
2016-08-31 22:08:12.400 A 3

关于python - Pandas :如何在毫秒间使用 between_time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43524458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com