0

このコードは、NumPy 1.6 を搭載した別のコンピューターで動作しました。

import pandas as pd
from pandas import DataFrame
import numpy as np

datapath='C:/Users/Alex/Desktop/samoa/WATERSHED_ANALYSIS/FAGAALU/MasterDataFiles/FP-Master.csv'#):

col_names = ['Date', 'Time', 'TempOut', 'HiTemp', 'LowTemp', 'OutHum', 'DewPt', 'WindSpeed', 'WindDir', 'WindRun', 'HiSpeed', 'HiDir', 'WindChill', 'HeatIndex', 'THWIndex', 'Bar', 'Rain', 'RainRate', 'HeatD-D', 'CoolD-D', 'InTemp', 'InHum', 'InDew', 'InHeat', 'InEMC', 'InAirDensity', 'WindSamp', 'WindTx', 'ISSRecept', 'Arc.Int.']

Wx= pd.read_csv(datapath,skiprows=1,header=0,names=col_names,parse_dates=[['Date','Time']],index_col=['Date_Time'],na_values=['---'])
Wx.index = Wx.index.astype('datetime64')
Wx = Wx.resample('15Min',fill_method='pad',limit=2) ## fill the 30min intervals to 15minute

'Date_Time'はcsvファイル列の組み合わせであり、'Date'フォーマット'Time'されています"%m/%d/%Y %I:%M %p"

NumPy 1.7 を搭載した新しいコンピューターでは、次のエラーが発生します。

>>> Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\pandas\core\index.py", line 198, in astype
    return Index(self.values.astype(dtype), name=self.name,
ValueError: Cannot create a NumPy datetime other than NaT with generic units

を使用してみましWx.index = pd.to_datetime(Wx.index)たが、インデックスをDatetimeIndex.

私も使ってみました

Wx.index = Wx['Date_Time'].convert_objects(convert_dates='coerce')

インデックスを に変換しますがpandas.tseries.index.DatetimeIndex、その後

Wx.resample('15Min',,fill_method='pad',limit=2) 

このエラーが発生します:

  File "tslib.pyx", line 1978, in pandas.tslib.normalize_date (pandas\tslib.c:30569)
ValueError: month must be in 1..12

なぜこれがうまくいかないのか誰か知っていますか?.asfreq('15Min')and thenを使用してみまし.fillna('pad')たが、扱いにくく、他のモジュールのために多くの再コーディングが必要になります。

4

1 に答える 1

1

日付列を解析すると、何かおかしいことが起こっています。あなたのファイルを見る必要があります(リンクを投稿するか、質問の一部を投稿してください)。解析は問題ないようです。いずれにせよ、pd.to_datetime投稿したものを に変換しDatetimeIndexます。これは、リサンプルに必要なものです。

こちらもお試しください

Wx.index = pd.todatetime(Wx.index.tolist())

インデックスは次のようになります

In [26]: df.index
Out[26]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2012-01-07 10:30:00, ..., 2013-05-04 10:30:00]
Length: 6, Freq: None, Timezone: None

これが例です

In [15]: index = pd.to_datetime('1/7/2012 10:30 AM, 1/7/2012 11:00 AM, 1/7/2012 11:30 AM, 5/4/2013 10:00 AM, 5/4/2013 10:15 AM, 5/4/2013 10:30 AM'.split(', '))

In [16]: df = DataFrame(randn(6,2),index=index)

In [17]: df
Out[17]: 
                            0         1
2012-01-07 10:30:00  0.523777 -0.093911
2012-01-07 11:00:00  0.954344  0.830551
2012-01-07 11:30:00 -0.004064 -1.831855
2013-05-04 10:00:00 -1.082163  1.426966
2013-05-04 10:15:00 -1.025252 -0.169916
2013-05-04 10:30:00  1.717222 -0.988228

In [18]: df.resample('15Min',fill_method='pad',limit=2).head(10)
Out[18]: 
                            0         1
2012-01-07 10:30:00  0.523777 -0.093911
2012-01-07 10:45:00  0.523777 -0.093911
2012-01-07 11:00:00  0.954344  0.830551
2012-01-07 11:15:00  0.954344  0.830551
2012-01-07 11:30:00 -0.004064 -1.831855
2012-01-07 11:45:00 -0.004064 -1.831855
2012-01-07 12:00:00 -0.004064 -1.831855
2012-01-07 12:15:00       NaN       NaN
2012-01-07 12:30:00       NaN       NaN
2012-01-07 12:45:00       NaN       NaN

In [19]: np.__version__
Out[19]: '1.7.1'

これは私が解析したファイルの例です(あなたがしたように)

In [32]: pd.read_csv('foo.csv',index_col=['Date_Time'],parse_dates=[['Date','Time']])
Out[32]: 
                            0         1
Date_Time                              
2012-01-07 10:30:00  0.523777 -0.093911
2012-01-07 11:00:00  0.954344  0.830551
2012-01-07 11:30:00 -0.004064 -1.831855
2013-05-04 10:00:00 -1.082163  1.426966
2013-05-04 10:15:00 -1.025252 -0.169916
2013-05-04 10:30:00  1.717222 -0.988228

In [33]: !cat 'foo.csv'
Date,Time,0,1
2012-01-07,10:30:00 AM,0.5237774067993367,-0.0939112810613334
2012-01-07,11:00:00 AM,0.9543438182818779,0.8305511332193324
2012-01-07,11:30:00 AM,-0.004064420703945425,-1.8318551051738328
2013-05-04,10:00:00 AM,-1.082162936479846,1.4269663822610816
2013-05-04,10:15:00 AM,-1.0252522955053849,-0.16991623915937284
2013-05-04,10:30:00 AM,1.7172224344229594,-0.9882282095859544

ファイル内の何かが調整されていないか、日付/時刻フィールドに奇妙な文字が埋め込まれている可能性がありますか?

于 2013-05-23T23:51:36.840 に答える