Python熊猫阅读时间

问题描述 投票:1回答:2

当我将xlsx文件中的时间数据读入pandas时。它读作十进制值

示例:9:23:27 AM读作.391284722我可以通过使用格式单元格和选择时间将其转换为时间来修复它。但我更喜欢一直使用大熊猫而不是优秀。

当我调用该值并将其转换为日期时间对象时df.TIME = pd.to_datetime(df.TIME)

它改变到这个日期1970-01-01所需时间是9:23:27 AM

任何帮助是极大的赞赏。谢谢

python pandas time
2个回答
2
投票

演示:

将该列读为字符串:

df = pd.read_excel(filename, dtype={'col_name':str})

In [51]: df
Out[51]:
          time
0   9:23:27 AM
1  12:59:59 AM

In [52]: df['time2'] = pd.to_timedelta(df['time'])

In [53]: df
Out[53]:
          time    time2
0   9:23:27 AM 09:23:27
1  12:59:59 AM 12:59:59

In [54]: df.dtypes
Out[54]:
time              object
time2    timedelta64[ns]
dtype: object

更新:为了转换从Excel读取的浮点数(#秒),请尝试以下操作:

来源DF:

In [85]: df
Out[85]:
       time
0  0.391285
1  0.391285
2  0.391285

解:

In [94]: df['time2'] = pd.to_timedelta((df['time'] * 86400).round(), unit='s')

In [95]: df
Out[95]:
       time    time2
0  0.391285 09:23:27
1  0.391285 09:23:27
2  0.391285 09:23:27

In [96]: df.dtypes
Out[96]:
time             float64
time2    timedelta64[ns]
dtype: object

0
投票

这个问题可以使用一些澄清来确定时间列的最终目的。但是,出于一般目的,请尝试在format中使用to_datetime关键字。

df.TIME=pd.to_datetime(df.TIME, format='%I:%M%S %p')

有关格式,请访问此网站:http://strftime.org/

© www.soinside.com 2019 - 2024. All rights reserved.