Python中如何将字典的键转为DataFrame列、值转为行?
问题解决:将字典转为列名对应、单行数据的DataFrame
你当前代码里用pd.DataFrame.from_dict(entries, orient='index')会把字典的键作为行索引,值作为单列数据,这和你想要的“键为列名、值为行数据”不符。
正确实现方式
因为entries是一个单层字典(比如{'postcode': 'ST87HL', 'latitude': 53.0..., 'longitude': -2.1...}),要生成符合预期的DataFrame,只需要把这个字典放到列表中传入pd.DataFrame即可:
import requests import pandas as pd url = 'https://api.getthedata.com/postcode/ST87HL' req = requests.get(url) data = req.json() entries = data['data'] # 把字典包装成列表,生成以键为列名、值为单行数据的DataFrame df = pd.DataFrame([entries]) print(df)
原理说明
pd.DataFrame()接受由字典组成的列表作为输入,每个字典对应DataFrame的一行,字典的键会自动成为列名。- 如果你坚持用
from_dict方法,也可以省略orient参数(默认是'columns'),但同样需要把字典转为列表形式:df = pd.DataFrame.from_dict([entries]),效果和上面一致。
内容的提问来源于stack exchange,提问作者RandomPezzer
相关产品推荐
相关产品推荐

