python-3.x - 将数据框转换为字典并保留所有值
问题描述
import pandas as pd
text = [list(['(1-100-133-1710)']), 'nan', 'nan']
df = pd.DataFrame({'Text': text ,
'IDs': ['A11','A11','C11'],
})
df
IDs Text
0 A11 [(1-100-133-1710)]
1 A11 nan
2 C11 nan
我有以下df
我的目标是制作df
一本字典
所以我尝试以下
to_d = dict(zip(df.IDs,df.Text))
我得到以下输出
{'A11': 'nan', 'C11': 'nan'}
但是此输出缺少行中的键A11
和值。理想情况下,我想要以下输出,但 python 字典中不允许重复键[(1-100-133-1710)]
0
df
{'A11': '[(1-100-133-1710)]', 'A11': 'nan', 'C11': 'nan'}
因此,我想要以下输出,它将两个值组合A11
到一个公共值列表中,该列表保持相同的键A11
{'A11': '[[(1-100-133-1710)]', 'nan'], 'C11': 'nan'}
如何获得我想要的输出?
解决方案
所以我们可以使用to_dict
df.groupby('IDs').Text.apply(list).to_dict()
Out[431]: {'A11': [['(1-100-133-1710)'], 'nan'], 'C11': ['nan']}
推荐阅读
- c# - 我也想为其他按钮重用第一个按钮的样式块,我该怎么办?
- flutter - 将数据传递给滑块
- laravel - 代理查看路由的策略
- firebase - 某些网络无法访问 Firebase CDN
- angular - 对 HttpClient 的异步调用获取
- c# - asp.net mvc 5.2.7 中的角色、授权和权限
- c++ - C++ regex_replace 清理连接的十进制数
- linux - Linux bash '[: -ge: 一元运算符预期' 错误
- c# - 如何在我的代码中随机化公共 Transform tilePrefab?
- javascript - 如果动态表没有行,则启用/禁用提交按钮