を反復します。列で定義されます:最速の方法は、私は2つのデータフレームを持つ2つのパンダのデータフレーム
そしてdt2
ここで私はそれらのレジストリエントリをネットワーク上のマシンに一致させます。列に定義された:Index([u'id', u'machine_id', 'registry_key_id'], dtype='object')
何dt1
内のすべての行を反復処理するための最速の方法で、行ごとに、row['id']
がdt2
列row['registry_key_id']
に発見された回数を数えますか?今
for row in dt1:
row['count'] = count(dt2[dt2['registry_key_id'] == row['id']]
我々はfor index, row in panda.iterrows():
を使用しているが、それは、行の数十万人を処理することになると、それは非常に遅いです:
擬似コードはと考えることができます。私たちは、そのプロセスをかなり加速する方法を探しています。
ありがとうございました。
アップデート1:
以下のコードを参照してください:
count = count.groupby('registry_key_id').count()
res = hunter.registry_keys().copy(deep=True)
res['count'] = res['id'].map(count['id'])
を我々はlen(count) == len(res)
こととcount['id']
回'registry_key_id'
の合計数が示されている返すことを確認しています。
ただし、res['count']
の値はすべてNaN
です。
あなたはそれを修正する際に助けてください。
回答:ぜい肉のとYarnspinnerさんの組み合わせを使用するには、
、私は12秒に1時間からカウントしてパンダをマッピングする時間を削減することができました。ありがとう!
私はあなたが左を実行する場合merge
あなたはその後、「ID」列に
value_counts
を呼び出しdupesを数えることができると思い
map()を呼び出すまではすべてがうまくいくようです。返される 'count'は常にNaNです。 –
Yarnspinner様に、私たちのコードと上記で取り上げているエラーの詳細について説明しました。レビューして助けてください。ありがとうございました! –