2016-08-30 3 views
2

時系列データを含むcsvファイルがあります。私は、次のようなデータフレームを作成します。私はdf.head(6)を呼び出すと、次のようにSeaborn(またはmatplotlib)を使用してx軸に日付をプロットする方法

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

、データが表示されます。

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['Date'] = pd.to_datetime(df['Date'], errors = 'coerce') 

興味深いことに、私が呼び出したときに、以下の "pandas.core.series.Series" を参照してください。

type(df['Date']) 

最後に、私はプロットを作成するには、次の呼び出し:

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

x軸の左から右へ、私は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は、同じ時間ウィンドウとdiffernetの条件で時系列をプロットするために使用されます。単一の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']) 
関連する問題