2016-08-02 5 views
0

これが私のデータである。パンダ - とValueError日時フォーマットの不一致に

date = df['Date'] 
print (date.head()) 

0 2015-01-02 
1 2015-01-02 
2 2015-01-02 
3 2015-01-02 
4 2015-01-02 
Name: Date, dtype: datetime64[ns] 

私のコード:

def date_to_days(date): 
    return date2num(datetime.datetime.strptime(date, '%Y-%m-%d')) 

は、なぜ私はそのエラーを取得していますか?

+0

この質問は、パンダライブラリについても同様です。あなたの質問にそれを含めてください。 日付はどのような種類のデータですか?印刷するとどうなりますか?関数strptimeには文字列が必要です。文字列の日付部分を検索しないので、 'ダム'です。したがって、datetimeに渡す文字列から不要なデータを取り除きます。 – Munchhausen

+0

'datetime'オブジェクトから日を抽出しようとしていますか? –

答えて

0

エラーなく正常に動作します。

In [74]: from matplotlib.dates import date2num 

In [75]: df['Number of days'] = df['Date'].apply(lambda x: date2num(datetime.datetime.strptime(x, '%Y-%m-%d'))) 

In [76]: df 
Out[76]: 
     Date Number of days 
0 2015-01-02  735600.0 
1 2015-01-02  735600.0 
2 2015-01-02  735600.0 
3 2015-01-02  735600.0 
4 2015-01-02  735600.0 

一般に、pandasシリーズオブジェクトに変数を割り当てるのは悪い習慣です。それは多くのことを混乱させる可能性があります。

In [1]: def date_to_days(date): 
    ...:  return date2num(datetime.datetime.strptime(date, '%Y-%m-%d')) 

In [2]: df['Number of days'] = df['Date'].apply(date_to_days) 

In [3]: df 
Out[3]: 
     Date Number of days 
0 2015-01-02  735600.0 
1 2015-01-02  735600.0 
2 2015-01-02  735600.0 
3 2015-01-02  735600.0 
4 2015-01-02  735600.0 
+0

日付の彼の表現は、実際に存在する時代を隠しているからだと思う。 – bernie

+0

うん。私はそれが事実かもしれないと思う。 –

関連する問題