時系列データを含むcsvファイルがあります。私はそのようにデータフレームを作成します:
_df = pd.read_csv('C:\\Desktop\\Scripts\\TimeSeries.log')
_
df.head(6)
を呼び出すと、データは次のように表示されます。
_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軸の値として「日付」列を追加するにはどうすればよいですか?
ありがとう!
Tsplotがそのための最良のツールであるかどうかはわかりません。あなたはただ使うことができます:
df[['Date','Value']].set_index('Date').plot()
time
にはtsplot
パラメータを使用します
ドキュメントから:
_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
は、同じ時間ウィンドウと異なる条件で時系列をプロットするために使用されます。単一の時系列をプロットするには、plt.plot(time = df['Date'], data = df['Value'])
を使用することもできます。
手遅れだと思います。
まず、「Date」列が一連の「datetime」タイプであることに注意する必要があるため、「date」部分を取得するためにこれを行う必要があります。
df['Date'] = df['Date'].map(lambda x:x.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'])