2017-04-24 156 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