python pandas dataframe columns convert to dict ke

2019-01-21 07:31发布

问题:

A python pandas dataframe with multi-columns, there are only two columns needed for dict. One as dict's keys and another as dict's values. How can I do that?

Dataframe:

           area  count
co tp
DE Lake      10      7
Forest       20      5
FR Lake      30      2
Forest       40      3

Need to define area as key, count as value in dict. thank you in advance.

回答1:

If lakes is your DataFrame, you can do something like

area_dict = dict(zip(lakes.area, lakes.count))


回答2:

With pandas it can be done as:

If lakes is your DataFrame:

area_dict = lakes.to_dict('records')


回答3:

You can also do this if you want to play around with pandas. However, I like punchagan's way.

# 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}