熊猫 - 圆形日期为30分钟

时间:2017-04-24 10:06:23

标签: python pandas datetime

我构建了这个数据框:

import pandas as pd
from pandas.compat import StringIO

temp = '''A,B
A,23:59:32.897000
B,17:36:09.182000
C,21:56:57.325000
D,06:16:24.482000'''

df = pd.read_csv(StringIO(temp))
df['B'] = pd.to_datetime(df['B']).dt.time

所以我想知道是否有可能在30分钟的时间间隔内缩小输出时间:

A,B
A,23:30:00.000000
B,17:30:00.000000
C,21:30:00.000000
D,06:00:00.000000

感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

dt.floor需要dt.time

df['B'] = pd.to_datetime(df['B']).dt.floor('30T').dt.time
print (df)
   A         B
0  A  23:30:00
1  B  17:30:00
2  C  21:30:00
3  D  06:00:00

它也适用于timedeltas:

df['B'] = pd.to_timedelta(df['B']).dt.floor('30T')
print (df)
   A        B
0  A 23:30:00
1  B 17:30:00
2  C 21:30:00
3  D 06:00:00

print (df.dtypes)
A             object
B    timedelta64[ns]
dtype: object