2016-08-30 4 views
2

일부 시계열 데이터가 포함 된 CSV 파일이 있습니다. 나는 같은 데이터 프레임을 만듭니다Seaborn (또는 matplotlib)을 사용하여 x 축에 날짜를 그리는 방법

Company  Date     Value 
ABC   08/21/16 00:00:00 500 
ABC   08/22/16 00:00:00 600 
ABC   08/23/16 00:00:00 650 
ABC   08/24/16 00:00:00 625 
ABC   08/25/16 00:00:00 675 
ABC   08/26/16 00:00:00 680 

을 그럼,이 날짜 형식으로 '날짜'열을 강제로 다음과 같은 한 : 나는 df.head(6) 호출 할 때 다음과 같이

df = pd.read_csv('C:\\Desktop\\Scripts\\TimeSeries.log') 

는, 데이터가 나타납니다 :

:

df['Date'] = pd.to_datetime(df['Date'], errors = 'coerce') 

흥미롭게도, 내가 전화 할 때 다음과 같은 "pandas.core.series.Series"을 참조하십시오

type(df['Date']) 

마지막으로, I가 플롯을 만들기 위해 다음 호출

%matplotlib qt 
sns.tsplot(df['Value']) 

는 X 축상의 왼쪽에서 오른쪽으로, I는 0에서 데이터 프레임의 행 수에 이르기까지의 정수 참조. 이 플롯에 x 축 값으로 '날짜'열을 추가하는 방법은 무엇입니까?

감사합니다.

+0

df.set_index (...)' – pbreach

+0

'와 인덱스로 '날짜'열을 설정해보십시오 또는 다음 첫 번째 인수로'df'와를 넣어 그에 따라'time'과'value' kwargs를 지정하십시오. – pbreach

답변

4

tsplot이이를위한 최상의 도구인지 확신 할 수 없습니다. 당신은 사용할 수 있습니다

df[['Date','Value']].set_index('Date').plot() 
2

이 문서에서 tsplot

time 매개 변수를 사용

time : string or series-like 
    Either the name of the field corresponding to time in the data DataFrame or x values for a plot when data is an array. If a Series, the name will be used to label the x axis. 
#Plot the Value column against Date column 
sns.tsplot(data = df['Value'], time = df['Date']) 

그러나 tsplot 동시에 윈도우와 전혀 다른 조건의 시계열을 플롯하는 데 사용됩니다. 단일 timeseries을 그릴 수도 있습니다. plt.plot(time = df['Date'], data = df['Value'])

0

너무 늦었다 고 생각합니다.

df['Date'] = df['Date'].map(lambda x:x.date()) 

이제 그룹 별 데이터 프레임 '

첫째, 당신은 당신이이'일 '부분을 얻기 위해 무엇을해야하므로'날짜 '열이'날짜 '형식의 시리즈는 것을 알 필요가 Date '를 선택하고'Date '를 컬럼이 아닌 인덱스로 만들려면 인덱스를 재설정하십시오.

그럼 당신은 plt.plot_date

을 사용할 수 있습니다
df_groupedby_date = df.groupby('Date').count() 
df_groupedby_date.reset_index(inplace=True) 
plt.plot_date(x=df_groupedby_date['Date'], y=df_groupedby_date['Value']) 
관련 문제