在使用pandas进行数据分析的时候,大多数情况下可以用read_csv、read_excel等函数读取数据。但是,有时候,我们面对的是字典形式的数据结构。在这种情况下,需要用到DataFrame与Dict之间的相互转换。
一、Dict转换为DataFrame
1、面向行
sales = [{"Fruits":"apple","Numbers":5},
{"Fruits":"banana","Numbers":8},
{"Fruits":"pear","Numbers":9}]
df = pd.DataFrame(sales)
在这种情形下,字典键被用作columns,索引index被自动生成。
Fruits | Numbers | |
0 | apple | 5 |
1 | banana | 8 |
2 | pear | 9 |
2、面向列
sales = {"Fruits":["apple","banana","pear"],
"Numbers":[5,8,9]}
df = pd.DataFrame.from_dict(sales)
使用此种方法得到的结果与上述上述结果相同。
二、DataFrame转换为Dict
DataFrame转换为Dict主要用到to_dict(orient)函数。参数orient的值可以取dict、list、series、split、records、index等。这里我们主要讲解list、records两个参数值。假设DataFrame数据结构df如下:
Fruits | Numbers | |
0 | apple | 5 |
1 | banana | 8 |
2 | pear | 9 |
1、参数为list
df.to_dict(orient='list')
得到的字典为:
{'Fruits': ['apple', 'banana', 'pear'], 'Numbers': [5, 8, 9]}
2、参数为records
df.to_dict(orient='records')
得到的字典为
[{'Fruits': 'apple', 'Numbers': 5},
{'Fruits': 'banana', 'Numbers': 8},
{'Fruits': 'pear', 'Numbers': 9}]