2

次の csv ファイルから pandas DataFrame を作成したいと思います。

...........
EUR MS 3M;20111025;7d;1.1510;
EUR MS 3M;20111024;7d;1.1530;
EUR MS 3M;20111025;1m;1.1580;
EUR MS 3M;20111024;1m;1.1590;
...........

DataFrame は、理想的には、最初の列の値 ("EUR MS 3M") として指定された名前、2 番目の列の値で構成されるインデックス ("20111025")、および DataFrame の列名が 3 番目の列から取得される場所を持ちます。列 (「7d」、「1m」など)、最後の csv 列 (「1.150」など) に対応する値を指定します。私はさまざまな方法で試しましたが、これを適切な方法で整理できませんでした。私が最初にすべきことは、最初にインデックスを整列させてからDataFrameを作成するために、csvの値を「スタック解除」することだと思いますが、実際にはどうすればいいですか...私よりも専門家なら誰でも持っていますどんな手掛かり?ほんの数週間前にパンダの学習を始めました...親切に助けてくれてありがとう!

(質問を編集して、少し明確にします。次のような列を含む EUR MS 3M という名前のデータフレームを取得したいと思います。

index    7d     1m 
20111024 1.1530 1.1590 
20111025 1.1510 1.1580 

もう少し明確になったことを願っています。ありがとう)

4

1 に答える 1

4

このようなものはどうですか:

In [103]: print data
EUR MS 3M;20111025;7d;1.1510
EUR MS 3M;20111024;7d;1.1530
EUR MS 3M;20111025;1m;1.1580
EUR MS 3M;20111024;1m;1.1590

In [104]: frame = pd.read_csv(StringIO(data), sep=';', 
                              names=['frame_name', 'index', 'column', 'value'])
In [105]: name = frame.ix[0, 'frame_name']

In [106]: rs = frame.ix[:, 1:].pivot('index', 'column', 'value')

In [107]: rs.name = name

In [108]: rs
Out[108]:
column       1m     7d
index
20111024  1.159  1.153
20111025  1.158  1.151
于 2012-09-03T18:52:56.903 に答える