2

dbから私は以下のデータを取得しています。次に、このデータからPython辞書を準備しています。ここで、各行に色を割り当てたいのですが、条件があります。コードゾーンが複数のzipに関連付けられている場合、その行は灰色になります。シングルzipに関連付けられているゾーンは、他の色になります。以下のデータから辞書を作成するにはどうすればよいですか。

+----------+-------+--------------+
| codeZone | ZipCd | Longitude    |
+----------+-------+--------------+
| Zone 81  | 13064 | -76.70275100 |
| Zone 81  | 13143 | -76.73114800 |
| Zone 81  | 13146 | -76.76016600 |
| Zone 72  | 13148 | -76.78488000 |
| Zone 72  | 13165 | -76.87704600 |
| Zone 50  | 14011 | -78.28090700 |
| Zone 50  | 14020 | -78.19062500 |
| Zone 50  | 14058 | -78.15694600 |
| Zone 50  | 14098 | -78.37735300 |
| Zone 50  | 14103 | -78.38546900 |
| Zone 50  | 14125 | -78.27249300 |
| Zone 50  | 14143 | -78.08089700 |
| Zone 50  | 14411 | -78.20223900 |
| Zone 81  | 14413 | -76.98321400 |
| Zone 60  | 14414 | -77.73609300 |
| Zone 50  | 14416 | -77.98543200 |
| Zone 72  | 14418 | -77.21132300 |
| Zone 14  | 14420 | -77.92950200 |
| Zone 50  | 14422 | -78.07160700 |
| Zone 60  | 14423 | -77.84307800 |
| Zone 71  | 14424 | -77.30122500 |
| Zone 70  | 14425 | -77.31024000 |
| Zone 61  | 14427 | -78.04682800 |
| Zone 16  | 14428 | -77.81500000 |
+----------+-------+--------------+

私のデータはこれに似たものに見えます

[{'zone':1、'zip':1、'spec':a}、{'zone':1、'zip':2、'spec':m}、{'zone':2、'zip ':3、'仕様':pC}]

これで、ゾーン1はzip1とzip2に関連付けられます。ゾーン2はzip3のみに関連付けられます。したがって、ゾーンの数(複数の場合)に基づいて、4番目のキー(つまり色)を辞書に割り当てたいと思います。ゾーン、次に灰色)。したがって、zip1とzip2の場合、色は灰色になります。zip3の場合は他の色。

4

1 に答える 1

2

ゾーンごとに郵便番号を数え、その情報をマッピングに含めます。

from collections import defaultdict

zipcount = defaultdict(set)
for zone, zip, longitude in datarows:
    zipcount[zone].add(zip)

# Create the output dictionary
output_dict = {}
for zone, zip, longitude in datarows:
    count = len(zipcount[zone])
    # adjust output dictionary based on the count (1 or more)
于 2013-03-13T15:01:34.387 に答える