問題

私はこのようなデータフレームを持っていますが、

enter image description here

私は別のデータフレームの列を再マップするためにこれから辞書を作成したいと思います(330行目を見ると524と545があります。別のデータフレームに1つの値(330)を割り当てたい)

だから私はこのコードを使ってdictorionaryを作りました。

 di = new2.T.to_dict('list')
 

しかし、私が得る辞書はこれです、

 {0: ['-1'],
 1: ['187'],
 2: ['212'],
 3: ['30'],
 4: ['209'],
 5: ['213'],
 6: ['214'],
 7: ['238'],
 8: ['544'],
 9: ['557'],
 10: ['317'],
 11: ['516'],
 12: ['571'],
 13: ['184, 549'],
 14: ['64'],
 15: ['43'],
 16: ['584'],
 17: ['185'],
 18: ['190'],
 19: ['218'],
 20: ['174'],
 21: ['550'],
 22: ['138'],
 23: ['1'],
 24: ['311'],
 25: ['576'],
 26: ['500'],
 27: ['208, 241'],
 28: ['16'],
 29: ['327'],
 30: ['3, 34, 50'],
 31: ['332'],
 32: ['520'],
 33: ['491'],
 34: ['535'],
 35: ['523'],
 36: ['119'],
 37: ['482'],
 38: ['574'],
 39: ['165'],
 40: ['370'],
 41: ['51, 62, 73, 87, 101, 120, 199, 240, 304, 360, 506'], 

このコードを使用して逆転すると、

 {value: key for key, values in di.items() for value in values}
 

それはこれになる、

 {'-1': 0,
 '187': 1,
 '212': 2,
 '30': 3,
 '209': 4,
 '213': 5,
 '214': 6,
 '238': 7,
 '544': 8,
 '557': 9,
 '317': 10,
 '516': 11,
 '571': 12,
 '184, 549': 13,
 '64': 14,
 '43': 15,
 '584': 16,
 '185': 17,
 '190': 18,
 '218': 19,
 '174': 20,
 '550': 21,
 '138': 22,
 '1': 23,
 '311': 24,
 '576': 25,
 '500': 26,
 '208, 241': 27,
 '16': 28,
 '327': 29,
 '3, 34, 50': 30,
 '332': 31,
 '520': 32,
 '491': 33,
 '535': 34,
 '523': 35,
 '119': 36,
 '482': 37,
 '574': 38,
 '165': 39,
 '370': 40,
 '51, 62, 73, 87, 101, 120, 199, 240, 304, 360, 506': 41,
 '525': 42, 

しかし、私はそれらを個別にマップしたい、

 184: 13,
549: 13,
 

これの代わりに、

 '184, 549': 13,
 

.map()関数を使用して辞書を使用してマップする

  ベストアンサー

問題は、リスト内に文字列があり、文字列を分割することです。

 di = {
    27: ['208, 241'],
    28: ['16'],
    29: ['327'],
    30: ['3, 34, 50'],
    31: ['332'],
    32: ['520'],
    33: ['491']
}

result = {value: key for key, values in di.items() for value in values[0].split(', ')}
print(result)
 

出力

 {'208': 27, '241': 27, '16': 28, '327': 29, '3': 30, '34': 30, '50': 30, '332': 31, '520': 32, '491': 33}
 

例としてdiの小さな部分を使用したことに注意してください。これは辞書全体に適用できます。

  同じタグがついた質問を見る

pythonpython-3.xdictionary