2017-04-24 67 views
3

我构建这个数据帧:熊猫 - 回合日期到30分钟

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 

任何帮助表示赞赏。

回答

5

您需要dt.floordt.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 
+0

很好,谢谢:) – zipa

+0

欢迎您! – jezrael