python - 如何将字典列表更改为定义的数据框格式?
问题描述
我有一个字典列表,如下所示,
list_of_dict = [{"mac":"0010403bf0db", "rssi":-42,
"gw_mac":"b827eb36fb0b", "detail":"main_building"},
{"mac":"0010403bf0db", "rssi":-87,
"gw_mac":"d827fc36gc0c", "detail":"main_building"}]
如何将上面的字典列表转换为下面提到的数据框格式?
required_df = mac detail b827eb36fb0b d827fc36gc0c
0010403bf0db main_building -42 -87
解决方案
首先DataFrame
由构造函数创建,如果mac
,detail
和中的值gw_mac
是唯一的,则可以通过DataFrame.set_index
with重塑Series.unstack
:
df = (pd.DataFrame(list_of_dict)
.set_index(['mac','detail', 'gw_mac'])['rssi']
.unstack(fill_value=0)
.reset_index()
.rename_axis(None, axis=1))
print (df)
mac detail b827eb36fb0b d827fc36gc0c
0 0010403bf0db main_building -42 -87
如果 3 列中的值不是唯一值,则必须通过以下方式聚合DataFrame.pivot_table
:
df = (pd.DataFrame(list_of_dict)
.pivot_table(index=['mac','detail'],columns='gw_mac',values='rssi', aggfunc='mean')
.reset_index()
.rename_axis(None, axis=1))
print (df)
mac detail b827eb36fb0b d827fc36gc0c
0 0010403bf0db main_building -42 -87
推荐阅读
- python - 如何解决 IntegrityError
- reactjs - 尝试使用 useSelector 设置 useState 的默认值,但它不起作用
- python - Docker 上的 Jupyter 笔记本 - 权限被拒绝
- excel - Excel:使用 VBA 连接和更新不同工作簿中的两个数据透视表
- python - 烧瓶请求返回空多部分/表单数据
- rdf - 根据三重存储中的数据创建 OWL 文件
- pandas - 循环遍历 pandas 数据框以创建单独的 Folium 地图
- python - Django如何编写更改用户密码的函数
- python - 删除链表中的最后一个节点
- python - 使用 p.map 和 itertuples 附加到具有多处理的数据帧