私はPythonとpandasの新機能です。情報がある非常に大きなテキストファイル(200〜500 MB)を解析したいと思いますレコードとして表示され、各レコードは列ではなく行/行としてデータフィールドを含み、レコードは異なる数のデータを提供する(異なるデータタイプを提供する)。以下の例:Python-Pandas Parser for Textレコードが不均一な行数で配列されています
....
Record Type = Record_Name
attribute1 = 3090 (0x01218)
attribute2 = attribute_name3090 (type: type_name1)
timestamp: 21:47:33.360000
attribute4: 731001-1 (0x0b277911)
attribute5: 50000 (0x000000c350)
attribute6: 3934 (0x0000000f5e)
attribute7: 857 (0x0000000359)
Record Type = Record_Name
attribute1 = 3099 (0x01227)
attribute2 = attribute_name3099 (type: type_name2)
timestamp: 21:49:07.359000
attribute4 = 731001-3 (0x0b277911)
attribute8: 14 (0x0000000e)
attribute9: 17 (0x00000011)
attribute10: 43 (0x0000002b)
attribute11: 40 (0x00000028)
Record Type = Record_Name
attribute1 = 3090 (0x01218)
attribute2 = attribute_name3090 (type: type_name1)
timestamp: 21:51:17.142000
attribute4: 942101-2 (0x0b345872)
attribute5: 2490368 (0x00260000)
attribute6: 24 (0x00000018)
attribute7: 25 (0x00000019)
Record Type = Record_Name
attribute1 = 3102 (0x)
attribute2 = attribute_name3102 (type: type_name1)
timestamp: 21:52:42.359000
attribute4: 731001-2 (0x0b277911)
attribute12: 0 (0x0000000000)
attribute13: 80 (0x0000000050)
....
したがって、後処理のために、私は1つのレコードの特定のタイプをフィルタするレコードをまとめ、そして他のために、パンダのデータフレームの結合に所望のデータを抽出したいです。レコードの
DATAFRAME 1サマリー表: ()内で、各レコードの属性のみカップルを示すタイムスタンプによって索引付けデータフレームを作成し、すべての維持文字列形式BUT進値なし:
attribute1 attribute2 type attribute4
timestamp
...
21:47:33.360000 3090 attribute_name3090 type_name1 731001-1
21:49:07.359000 3099 attribute_name3099 type_name2 731001-3
21:51:17.142000 3090 attribute_name3090 type_name1 942101-2
21:52:42.359000 3102 attribute_name3102 type_name1 731001-2
....
DATAFRAME 2 FILTERED RECORDS: attribute1 = 3090(type = typename1)に関連付けられたレコードのみをキャプチャし、タイムスタンプでアトリビュート5-7のインデックス付きインデックス付きインデックスデータを作成し、文字列から整数に変換します。
attribute4 attribute5 attribute6 attribute7
timestamp
...
21:47:33.360000 731001-1 5000 3934 857
21:51:17.142000 942101-2 2490368 24 25
....
ファイルを開いて行を読み込もうとしましたが、大量の時間がかかります。私は "ジェネレータ"について読んでいましたが、コードを単純化する方法を理解できませんでした。あなたの提案は非常に高く評価されます。 ありがとうございます。
のGus
チェックこの回答:http://stackoverflow.com/questions/13651117/pandas-filter-lines-on-load-in-read-csv –
こんにちはテッド、フィードバックに感謝。元のファイルはcsvではなく.txt(テキスト)なので、それはもっと挑戦的です。私はcsvファイルをパンダにロードし、それらのファイルで作業しています...この特定のケースでは、(1).txtを読み込み、(2)解析してpd.dataframesを2つ入れ、 3)出力をCSVに保存します。私の問題は(2)です。 Regrads、 –
この[topic](http://stackoverflow.com/questions/19632075/how-to-read-file-with-space-separated-values)をご覧ください。 –