2

次の形式のデータを含む .csv ファイルがあります。

1.69511909,  0.57561167,  0.31437427,  0.35458831,  0.15841189, 0.28239582, -0.18180907,  1.34761404, -1.5059083,  1.29246638
-1.66764664,  0.1488095,  1.03832221, -0.35229205,  1.35705861, -1.56747104, -0.36783851, -0.57636948,  0.9854391,  1.63031066
0.87763775,  0.60757153,  0.64908314, -0.68357724,  0.33499838, -0.08557089,  1.71855596, -0.61235066, -0.32520105,  1.54162629

各行は特定の日に対応し、行内の各レコードはその日の特定の時間に対応します。

すべてが正しく索引付けされるようにデータをインポートする便利な方法はありread_csvますか。つまり、インポート機能は異なる日(行)と日内の時間(行の個別のレコード)を識別します。

4

2 に答える 2

1

まず、DataFrame を読み込むだけです。

df = pd.read_csv(file_name, sep=',\s+', header=None)

次に、インデックスを日付に、列を時間に設定します*

df.index = pd.date_range('2012-01-01', freq='D', periods=len(df))
from pandas.tseries.offsets import Hour
df.columns = [Hour(7+t) for t in df.columns]

In [5]: df
Out[5]:
            <7 Hours>  <8 Hours>  <9 Hours>  <10 Hours>  <11 Hours>   <12 Hours>  <13 Hours>  <14 Hours>  <15 Hours>  <16 Hours>
2012-01-01   1.695119   0.575612   0.314374    0.354588    0.158412   0.282396   -0.181809    1.347614   -1.505908    1.292466
2012-01-02  -1.667647   0.148810   1.038322   -0.352292    1.357059  -1.567471   -0.367839   -0.576369    0.985439    1.630311
2012-01-03   0.877638   0.607572   0.649083   -0.683577    0.334998  -0.085571    1.718556   -0.612351   -0.325201    1.541626

次に、それを積み重ねて、MultiIndex の Date および Hour レベルを追加します。

s = df.stack()
s.index = [x[0]+x[1] for x in s.index]

In [8]: s
Out[8]:
2012-01-01 07:00:00    1.695119
2012-01-01 08:00:00    0.575612
2012-01-01 09:00:00    0.314374
2012-01-01 10:00:00    0.354588
2012-01-01 11:00:00    0.158412
2012-01-01 12:00:00    0.282396
2012-01-01 13:00:00   -0.181809
2012-01-01 14:00:00    1.347614
2012-01-01 15:00:00   -1.505908
2012-01-01 16:00:00    1.292466
2012-01-02 07:00:00   -1.667647
2012-01-02 08:00:00    0.148810
...

*さまざまなオフセットを使用できます。ここを参照しMinuteてくださいSecond

于 2013-06-07T16:37:46.120 に答える