Python 将csv列从历元时间转换为人类可读的分钟数

Python 将csv列从历元时间转换为人类可读的分钟数,python,csv,pandas,epoch,Python,Csv,Pandas,Epoch,我有一个pandas.DataFrame按时间索引,如下所示。时间是大纪元时间。当我绘制第二列时,这些时间值沿x轴显示。我想要一个更具可读性的时间,以分钟为单位:秒 In [13]: print df.head() Time 1481044277379 0.581858 1481044277384 0.581858 1481044277417 0.581858 1481044277418 0.581858 1481044277467 0.581858 我尝试了一

我有一个
pandas.DataFrame
按时间索引,如下所示。时间是大纪元时间。当我绘制第二列时,这些时间值沿x轴显示。我想要一个更具可读性的时间,以分钟为单位:秒

In [13]: print df.head()

Time
1481044277379    0.581858
1481044277384    0.581858
1481044277417    0.581858
1481044277418    0.581858
1481044277467    0.581858
我尝试了一些pandas函数和一些转换整个专栏的方法,我访问了:,this和cool


我使用的是熊猫0.18.1

您可以使用以下命令将历元时间戳转换为HH:MM:

import datetime as dt
hours_mins = dt.datetime.fromtimestamp(1347517370).strftime('%H:%M')
将列添加到您的
pandas.DataFrame
可以通过以下方式完成:

df['H_M'] = pd.Series([dt.datetime.fromtimestamp(int(ts)).strftime('%H:%M')
                       for ts in df['timestamp']]).values

如果使用
read\u csv
读取数据,则可以使用自定义日期分析器:

import pandas as pd

#example.csv
'''
Time,Value
1481044277379,0.581858 
1481044277384,0.581858
1481044277417,0.581858
1481044277418,0.581858
1481044277467,0.581858
'''

def dateparse(time_in_secs):
   time_in_secs = time_in_secs/1000
   return datetime.datetime.fromtimestamp(float(time_in_secs))

dtype= {"Time": float, "Value":float}
df = pd.read_csv("example.csv", dtype=dtype, parse_dates=["Time"], date_parser=dateparse)
print df

我忘记提到的一些研究:我正在使用pandas 0.18.1,我已经读过:-但我不知道如何实现。这个在线转换提供了一种方法-谢谢!这帮了大忙。@Andrew如果这回答了你的问题,你可以接受答案并结束这个问题,这样其他人就会认为问题已经解决了。如果没有,请评论缺失的内容。