データフレームを、すべて列からの4つのキーを持つ辞書に変換しようとしています。また、これらの4つの列から作成されたキーを使用して値を返したい複数の列があります。ループのある方法で作業しましたが、メモリエラーが発生しました。私はこれのためのより効率的な方法があることに興味がありますか?
データフレームは次のようになります。
Service Bill Weight Zone Resi UPS FedEx USPS DHL
1DEA 1 2 N 33.02 9999 9999 9999
1DEA 2 2 N 33.02 9999 9999 9999
1DEA 3 2 N 33.02 9999 9999 9999
次のような各キャリアのキーが必要です。
price[('1DEA', '1', '2', 'N', 'UPS')]=33.02
price[('1DEA', '1', '2', 'N', 'FedEx')]=9999
私はこれを試しました:
price = {}
carriers = ['UPS', 'FedEx', 'USPS','DHL']
for carrier in carriers:
for row in rate_keys.to_dict('records'):
key = (row['Service'], row['Bill Weight'], row['Zone'],
row['Resi'], carrier)
rate_keys[key] = row[carrier]
rate_keys
ループ中に更新するべきではないでしょう。サンプルスクリプトの最後の行は次のようになります。
price[key] = row[carrier]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加