私はPythonスクリプトを使っていくつかのStataコマンドを生成しています。出力はテキストファイルです。私はPythonを使用して、現在のケースではない同じ観測に属する行をグループ化したいと思います。テキストファイルの行を並べ替える
このファイルの典型的な行は(のは、それをfile.txtを呼びましょう)ソートは次のとおりです。
、B、Cは、変数を識別している[something something] if a == 1 & b == 2 & c == 3 & [other things]
。 (a、b、c)の3つ組は、観測を一意に識別します。私がしようとしているのは、同じ観測に関連するすべての行をまとめてfile.txtを並べ替えることです。 (
replace k = 1 if a == 1 & b == 2 & c == 3 & comments_1 == "I wish I was better at Python"
replace g = "Example" if a == 1 & b == 2 & c == 3 & comments_1 == "I wish I was better at Python"
replace k = 2 if a == 1 & b == 3 & c == 4 & comments_1 == ""
線1とが同じ観察に関連しているため、入力の3出力で互いに隣接している:
replace k = 1 if a == 1 & b == 2 & c == 3 & comments_1 == "I wish I was better at Python"
replace k = 2 if a == 1 & b == 3 & c == 4 & comments_1 == ""
replace g = "Example" if a == 1 & b == 2 & c == 3 & comments_1 == "I wish I was better at Python"
に:
例えば、から行きます同じa、b、cトリプレット)。これはアルファベット順のソートとは異なり、sort()は使用できません。
私の計画は次のようになります。
は空の辞書dictを作成[タプル[int型]:設定を[STR]]
テキストファイルの各行を読みます。それぞれの行について、 'a =='の後と 'b =='の前に文字を検索して三つ組を取得します。
トリプレットが辞書に含まれている場合は、トリプレットが指し示すセット内の文字列としてその行を追加します。そうでない場合は、エントリを作成して文字列を追加します。
各エントリのセット内の各文字列について、ファイルに文字列を書き込みます。
これは私がファイルをソートすると信じています。
これは機能しますか?それを行うより良い方法はありますか?
ありがとうございます!