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如果这回答了你的问题,你可以接受答案并结束这个问题,这样其他人就会认为问题已经解决了。如果没有,请评论缺失的内容。