首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python Pandas阅读时间

Python Pandas阅读时间
EN

Stack Overflow用户
提问于 2017-12-19 00:44:09
回答 2查看 165关注 0票数 1

当我将时间数据从xlsx文件读取到pandas中时。它以十进制值的形式读取

示例:上午9:23:27读取为.391284722我可以通过使用格式化单元格和选择时间将其转换为时间来修复它。但我更喜欢使用熊猫,而不是excel。

当我调用该值并将其转换为date time object df.TIME=pd.to_datetime(df.TIME)

更改为此日期1970-01-01所需时间为上午9:23:27

任何帮助都是非常感谢的。谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-12-19 01:11:07

演示:

将该列作为字符串读取:

代码语言:javascript
运行
复制
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

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

源DF:

代码语言:javascript
运行
复制
In [85]: df
Out[85]:
       time
0  0.391285
1  0.391285
2  0.391285

解决方案:

代码语言:javascript
运行
复制
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
票数 2
EN

Stack Overflow用户

发布于 2017-12-19 00:59:56

这个问题可以用一些澄清来作为时间栏的最终目的。不过,出于一般目的,可以尝试在to_datetime中使用format关键字。

代码语言:javascript
运行
复制
df.TIME=pd.to_datetime(df.TIME, format='%I:%M%S %p')

有关格式,请参阅此网站:http://strftime.org/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47872835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档