そのため、pandas モジュールを使用した Python は、matlab と R の優れたオプションのように思えます。これが、私がごく最近これに切り替えた理由です。そこにはリソースがあり、フォーラムを検索しましたが、同様のものは見つかりませんでした. チュートリアルやその他の有用な資料へのリンクがある場合は、投稿してください。
Wes McKinney は、パンダに関する優れた精巧なチュートリアルを提供しています。 http://www.youtube.com/watch?v=w26x-z-BdWQ&list=FLJ5xKwlfj7wg8S_A5SgR6Wg&feature=mh_lolz
1:10 で、整数ではなく日付でデータフレーム内の行にインデックスを付ける方法の例を示しています。私は似たようなことをしたいと思います。
違いは、3 つの変数 Y1、Y2、Y3 があり、それぞれにタイムスタンプ X1、X2、X3 の列があることです。
TestFile.txt:
X1 Y1 X2 Y2 X3 Y3
27/11/2012 11.436 29/11/2012 20.631 4/12/2012 10.209
28/11/2012 11.468 30/11/2012 20.185 5/12/2012 9.973
29/11/2012 11.414 3/12/2012 19.962 6/12/2012 9.736
30/11/2012 11.355 4/12/2012 19.562 7/12/2012 9.509
3/12/2012 11.309 5/12/2012 18.908 10/12/2012 9.259
4/12/2012 11.118 6/12/2012 18.288 11/12/2012 8.109
5/12/2012 10.873 7/12/2012 17.973
6/12/2012 10.582 10/12/2012 17.788
7/12/2012 10.264 11/12/2012 17.554
10/12/2012 9.886
11/12/2012 9.164
4つのことをしたい場所:
i = 1,2,3 の場合、Xi の日付で Yi のデータを関連付けます。
日付で行にインデックスを付ける
Y3 の最初の日付である 2012 年 4 月 12 日より古いすべてのデータを削除します。
日付と列のみですべての日付にアクセスできる
以下は、データの読み取り方法と印刷方法を説明するテスト ファイルです。X1 は pandas の日付形式に正しく解析されていますが、X2 や X3 は正しく解析されていないことがわかります。
これは、index_col=[0,2,4]および
parse_dates = Trueを指定して実行しようとしたことです
TestFile.py:
import pandas as pd
df = pd.read_csv('TestFile.txt',sep='\t', index_col=[0,2,4], parse_dates = True)
print 'pandas version: ', pd.__version__
print df
出力を与えます:
pandas version: 0.10.0b1
X1 X2 X3 Y1 Y2 Y3
2012-11-27 29/11/2012 4/12/2012 11.436 20.631 10.209
2012-11-28 30/11/2012 5/12/2012 11.468 20.185 9.973
2012-11-29 3/12/2012 6/12/2012 11.414 19.962 9.736
2012-11-30 4/12/2012 7/12/2012 11.355 19.562 9.509
2012-03-12 5/12/2012 10/12/2012 11.309 18.908 9.259
2012-04-12 6/12/2012 11/12/2012 11.118 18.288 8.109
2012-05-12 7/12/2012 None 10.873 17.973 NaN
2012-06-12 10/12/2012 None 10.582 17.788 NaN
2012-07-12 11/12/2012 None 10.264 17.554 NaN
2012-10-12 None None 9.886 NaN NaN
2012-11-12 None None 9.164 NaN NaN
必要な出力:
Y1 Y2 Y3
2012-04-12 11.118 19.562 10.209
2012-05-12 10.873 18.908 9.973
2012-06-12 10.582 18.288 9.736
2012-07-12 10.264 17.973 9.509
2012-10-12 9.886 17.788 9.259
2012-11-12 9.164 17.554 8.109
これを行う方法について何か考えがある場合は、助けていただければ幸いです:)