Python Pandas 将时间读取为十进制值

标签 python pandas time

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

示例:9:23:27 AM 读取为 .391284722

我可以通过使用格式单元格将其转换为时间并选择时间来修复它。但我更喜欢自始至终使用 pandas,而不是 Excel。

当我调用该值并将其转换为日期时间对象时

df.TIME=pd.to_datetime(df.TIME)

更改为此日期1970-01-01

所需时间是9:23:27 AM

非常感谢任何帮助。 谢谢

最佳答案

演示:

将该列读取为字符串:

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 读取的 float (秒数) 请尝试以下操作:

来源 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

关于Python Pandas 将时间读取为十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872835/

相关文章:

python - 如果一列中的值不满足另一列中的要求,则删除行

python - 谁能告诉我django的延迟加载和事务吗?

python - 一种在 python 中比较字典值并打印它们的键的方法

python - 如何将 moderngl fbo(帧缓冲区对象)读回 numpy 数组?

hh :mm:ss in String 的 Java 正则表达式匹配

MySQL 插入条件日期时间

Java条件正则表达式检查24小时时间?‽

python - 如何在我的网站上获取文件的 Bazaar 版本?

Python:如何获取数据框中多个数组的元素标准差

python - Pandas 向量化函数 cumsum 与 numpy