Mam ramkę danych pandy z wieloma kolumnami i chciałbym skonstruować dyktę z dwóch kolumn: jednej jako kluczy dykta, a drugiej jako wartości dyktu. Jak mogę to zrobić?
Ramka danych:
area count
co tp
DE Lake 10 7
Forest 20 5
FR Lake 30 2
Forest 40 3
Muszę zdefiniować obszar jako klucz, liczyć jako wartość w dict. Z góry dziękuję.
python
pandas
dataframe
dictionary
data-conversion
perygeum
źródło
źródło
TypeError: zip argument #2 must support iteration
area_dict = dict(zip(lakes['area'], lakes['count']))
area_dict = dict(zip(lakes.area, (lakes.count, lakes.other_column)))
. Jak byś to zrobił?Z pandami można to zrobić jako:
Jeśli Twoje DataFrame to jeziora:
area_dict = lakes.to_dict('records')
źródło
orient
.Możesz to również zrobić, jeśli chcesz bawić się z pandami. Jednak lubię sposób punchagana.
# replicating your dataframe lake = pd.DataFrame({'co tp': ['DE Lake', 'Forest', 'FR Lake', 'Forest'], 'area': [10, 20, 30, 40], 'count': [7, 5, 2, 3]}) lake.set_index('co tp', inplace=True) # to get key value using pandas area_dict = lake.set_index('area').T.to_dict('records')[0] print(area_dict) output: {10: 7, 20: 5, 30: 2, 40: 3}
źródło