我有一个带有多列的pandas数据框,我想从两列构造一个dict:一个作为dict的键,另一个作为dict的值。我怎样才能做到这一点?
数据框:
area count
co tp
DE Lake 10 7
Forest 20 5
FR Lake 30 2
Forest 40 3
我需要将区域定义为键,在dict中计为值。先感谢您。
Answers:
如果lakes
是您DataFrame
,则可以执行以下操作
area_dict = dict(zip(lakes.area, lakes.count))
area_dict = dict(zip(lakes['area'], lakes['count']))
area_dict = dict(zip(lakes.area, (lakes.count, lakes.other_column)))
。您将如何实现这一目标?
使用大熊猫可以做到:
如果lakes是您的DataFrame:
area_dict = lakes.to_dict('records')
orient
。
如果您想和熊猫玩耍,也可以这样做。但是,我喜欢punchagan的方式。
# 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}
TypeError: zip argument #2 must support iteration