Python 3.x 在数据帧中减去两个时钟时间
我试图减去熊猫数据帧的两列,这两列包含正常的时钟时间作为字符串,但不知怎的,我被击中了 我尝试使用pandas.datetime将每列转换为datetime,但减法仍然不起作用Python 3.x 在数据帧中减去两个时钟时间,python-3.x,pandas,Python 3.x,Pandas,我试图减去熊猫数据帧的两列,这两列包含正常的时钟时间作为字符串,但不知怎的,我被击中了 我尝试使用pandas.datetime将每列转换为datetime,但减法仍然不起作用 import pandas as pd df = pd.DataFrame() df['A'] = ["12:30","5:30"] df['B'] = ["19:30","9:30"] df['A'] = pd.to_datetime(df['A']).dt.time df['B'] = pd.to_datetime
import pandas as pd
df = pd.DataFrame()
df['A'] = ["12:30","5:30"]
df['B'] = ["19:30","9:30"]
df['A'] = pd.to_datetime(df['A']).dt.time
df['B'] = pd.to_datetime(df['B']).dt.time
df['time_diff'] = df['B'] - df['A']
I am expecting the actual time difference between two clock times.
您应该使用
来_timedelta
df['A'] = pd.to_timedelta(df['A']+':00')
df['B'] = pd.to_timedelta(df['B']+':00')
df['time_diff'] = df['B'] - df['A']
df
Out[21]:
A B time_diff
0 12:30:00 19:30:00 07:00:00
1 05:30:00 09:30:00 04:00:00
我尝试了以下方法。这对我也很有用。除以3600以小时为单位计算时间
df = pd.DataFrame()
df['A'] = ["12:30","5:30"]
df['B'] = ["19:30","9:30"]
df['time_diff_minutes'] = (pd.to_datetime(df['B']) -
pd.to_datetime(df['A'])).astype('timedelta64[s]')/60
df['time_diff_hours'] = df['time_diff_minutes']/60
df
Out[161]:
A B time_diff_minutes time_diff_hours
0 12:30 19:30 420.0 7.0
1 5:30 9:30 240.0 4.0