2

ファイルからいくつかのcsvログデータを読み取り、フレームのインデックスとして日付、時刻フィールドを使用しています。時系列をプロットすると、絶対時間がX軸に表示されます。開始時刻を基準にしてx軸に時刻を表示したいと思います。これを行う方法?

例:ここにサンプルのx軸があります:

 23:59:57--------+23:59:58----------23:59:59--------+00:00:00--------------+

私はそれがこのように欲しい:

 0---------00:00:01----------00:00:02--------+00:00:03--------------+
4

2 に答える 2

3

簡単な解決策は、インデックスから最初のインデックスアイテムを差し引くことです。これは、リスト内包表記を使用して実行できます。これは、データフレームが非常に大きい場合、最良の(最速の)オプションではない可能性があります。

begin = pd.datetime(2013,1,5,5,53)
end = pd.datetime(2013,1,7,7,16)

rng = pd.DatetimeIndex(start=begin, end=end, freq=pd.datetools.Minute(15))
df = pd.DataFrame(np.random.randn(rng.size), index=rng)

fig, axs = plt.subplots(2,1, figsize=(15,6))
fig.subplots_adjust(hspace=.5)

df.plot(ax=axs[0])
axs[0].set_title('Original')

df.index = [idx - df.index[0] for idx in df.index]
df.plot(ax=axs[1])
axs[1].set_title('Normalized')

ここに画像の説明を入力してください

于 2013-02-14T09:44:34.013 に答える
2

これは、相対時間の正規化を行った後の出力です

インデックスのデータ型がDatetimeIndexからオブジェクトに変更されたため、各行は別々のバケットに出力されています。

于 2013-03-05T20:18:17.717 に答える