2016-05-04 5 views
0

基本的に、私は極端なグラフをグラフに描きたくありません。グラフの傾きに基づいてこれを行うのは良いアイデアだと思っていましたが、何らかの理由で私のx軸の日付が存在しないというエラーが発生し続けています(DataFrameにDatumtijdという属性はありません)。 (編集:ファイルの場所が削除されて質問に回答しました)Python 2.7 pandasデータフレームの勾配に基づいて極値をプロットしない

from pylab import * 
import matplotlib.pyplot as plt 
import matplotlib.dates as pld 
%matplotlib inline 
import pandas as pd 
from pandas import DataFrame 
pbn135 = pd.read_csv('3873_135.csv', parse_dates=[0], index_col = 0, dayfirst = True, delimiter = ';', usecols = ['Datumtijd','DisplayWaarde']) 
pbn135.plot() 

for i in range(len(pbn135)): 
    slope = (pbn135.DisplayWaarde[i+1]-pbn135.DisplayWaarde[i])/(pbn135.Datumtijd[i+1]-pbn135.Datumtijd[i]) 

答えて

0

PythonはDateTimeで操作できません。 DateTimeを整数に変換すると動作します。通常は、基準日(例えば、1月2015)から合計秒を計算することによって行われます。

これは、datetimedatetimeからインポートすることによって行われます。その後、基準日をdatetime(2015,1,1)に設定すると、秒はtotal_seconds()と計算されます。

しかし、これは間隔が秒であり、datetimeの間隔ではない傾きを作成します。手動で部門に入ることなくそれを修正する方法を知っている人は、

from datetime import datetime 

for i in range(len(pbn135)): 
    slope = (pbn135.pbn73[i+1]-pbn135.pbn73[i])/((pbn135.index[i+1]-datetime(2015,1,1)).total_seconds()-(pbn135.index[i]-datetime(2015,1,1)).total_seconds()) 
    print slope 
関連する問題