したがって、私は約25,000行のデータを照合するためにPythonの中で組み合わせリストを作成しようとしています。2つのファイルを効果的に反復する方法(25000 + Lines)
リストからSerial|Mac
Mac
1する必要があります。
最初のリストのデータは、2番目のリストデータはserial.uid来て、このようなファイルのmac.uidから来て、この
Mac|ID
のように見えます参加する前にリスト2のMac
と同じになります。
これは私が現在やっていることですが、繰り返しすぎていると思います。
combined = [];
def combineData():
lines = open('mac.uid', 'r+')
for line in lines:
with open('serial.uid', 'r+') as serial:
for each in serial:
a, b = line.strip().split('|')
a = a.lower()
x, y = each.strip().split('|')
y = y.lower()
if a == y:
combined.append(a+""+b+""+x)
最終的なリストは、このように見えるようになっている:私はExcelシートにインポートできるよう
Mac(List1), ID(List1), Serial(List2)
。
ありがとうございました!代わりに、あなたはあなたのおおよそO( Nログ( N))の複雑さを与える辞書を使用する必要があります(二次複雑さの原因となる)あなたのネストされたループの
メモリに両方のファイルを読み込むことができる場合は、参加を実行するためにパンダを使用します。http://pandas.pydata.org/pandas-docs/stable/merging.html#database-style-dataframe-joining-mergingを参照してください。あなたがデータをどのSQLデータベースにもロードしてそこに参加することができない場合は、(または単にdictsを使用して) –
私は正直なところ、この問題は見当たりません。それは非常に効果的でスケーラブルに見えます。 – pltrdy
これらの値はすべて一意ですか?各Mac | IDには、同じMacを持つシリアル| Macが1つありますか? – tdelaney