我有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函数,以及一些转换整个列的方法,我访问过:Pandas docs,这个question和酷site。
我正在使用pandas 0.18.1
答案 0 :(得分:2)
您可以使用以下内容将纪元时间戳转换为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
答案 1 :(得分:2)
如果您使用read_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