2017-02-11 2 views
2

아래에 표시된대로 pandas.DataFrame이 시간순으로 인덱싱됩니다. 시간은 에포크 시간입니다. 두 번째 열을 그래프로 그릴 때이 시간 값은 x 축을 따라 표시됩니다. 좀 더 읽기 쉬운 시간 (분 : 초)을 원합니다.에포크 시간에서 사람이 읽을 수있는 분으로 csv 열을 변환하십시오.

좀 팬더 기능, 전체 열을 변환하기위한 몇 가지 방법을 시도
In [13]: print df.head() 

Time 
1481044277379 0.581858 
1481044277384 0.581858 
1481044277417 0.581858 
1481044277418 0.581858 
1481044277467 0.581858 

, 나는 방문 : Pandas docsquestion 시원한 site합니다. MM를 가진 :

나는 당신은 HH에 획기적인 타임 스탬프를 변환 할 수 있습니다 pandas 0.18.1

+0

몇 가지 재검토 중 내가 언급하는 것을 잊어 버렸습니다. 팬더 0.18.1을 사용하고 있습니다. http://pandas.pydata.org/pandas-docs/version/0.18.1/timeseries.html http://pythonoverflow.com/questions/12400256/python-converting-epoch-time-into-the-datetime -하지만 구현 방법을 이해하지 못합니다. – Andrew

+0

이 온라인 변환은 접근을 제공합니다 - http://www.epochconverter.com/#code – Andrew

답변

2

을 사용하고

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 
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 
+0

고마워요! 이것은 많은 도움이되었습니다. – Andrew

+0

@Andrew이 질문에 대한 답변이 있으면 대답을 수락하고 문제를 닫아 다른 사람들이 해결할 수 있도록 할 수 있습니다. 그렇지 않은 경우 누락 된 부분을 메모하십시오. – ppasler

관련 문제