我有一个名为
StartTime
有
hh:mm:ss XX
数据和单元格采用“h:mm:ss am/fm”自定义格式。例如,
ID StartTime
1 12:00:00 PM
2 1:00:00 PM
3 2:00:00 PM
我用了下面的代码来读取文件
df = pd.read_excel('./mydata.xls',
sheet_name='Sheet1',
converters={'StartTime' : str},
)
df
显示
ID StartTime
1 12:00:00
2 1:00:00
3 2:00:00
是虫子还是怎么克服?谢谢。
[更新日期:2018年12月7日]
我想我可能对excel文件做了一些修改,这让它变得很奇怪。我创建了另一个Excel文件并在此处显示(我无法在此处附加Excel文件,而且它也不安全):
我创建了以下代码进行测试:
import pandas as pd
df = pd.read_excel('./Book1.xlsx',
sheet_name='Sheet1',
converters={'StartTime': str,
'EndTime': str
}
)
df['Hours1'] = pd.NaT
df['Hours2'] = pd.NaT
print(df,'\n')
df.loc[~df.StartTime.isnull() & ~df.EndTime.isnull(),
'Hours1'] = pd.to_datetime(df.EndTime) - pd.to_datetime(df.StartTime)
df['Hours2'] = pd.to_datetime(df.EndTime) - pd.to_datetime(df.StartTime)
print(df)
输出是
ID StartTime EndTime Hours1 Hours2
0 0 11:00:00 12:00:00 NaT NaT
1 1 12:00:00 13:00:00 NaT NaT
2 2 13:00:00 14:00:00 NaT NaT
3 3 NaN NaN NaT NaT
4 4 14:00:00 NaN NaT NaT
ID StartTime EndTime Hours1 Hours2
0 0 11:00:00 12:00:00 3600000000000 01:00:00
1 1 12:00:00 13:00:00 3600000000000 01:00:00
2 2 13:00:00 14:00:00 3600000000000 01:00:00
3 3 NaN NaN NaT NaT
4 4 14:00:00 NaN NaT NaT
现在的问题变成了:“使用pandas从microsoft excel中的2个“hh:mm:ss xx”列执行时间增量”。我也改了题目。谢谢你的回复和尝试。
问题是
如何将时间值表示为小时而不是微秒?