python - 从数据框创建字典的字典
问题描述
我正在尝试将数据帧转换为以下格式的字典:
df
name age country state pincode
0 user1 10.0 in tn 1.0
1 user2 11.0 us tx 2.0
2 user3 12.0 eu fr 3.0
{
'user1':{'age':10,'country':'in','state':'tn','pincode':1},
'user2':{'age':11,'country':'us','state':'tx','pincode':2},
'user3':{'age':12,'country':'eu','state':'fr','pincode':3}
}
我目前正在通过以下声明执行此操作:
op = {}
for i, row in df.iterrows():
op[row['name']] = {'age':row['age'],'country':row['country'],'state':row['state'],'pincode':row['pincode']}
如果向 df 添加了其他列,我希望解决方案能够正常工作。例如电话号码。由于我写的语句是静态的,它不会在我的输出中给我额外的行。pandas 中是否有内置方法可以做到这一点?
解决方案
这可能不是很可读,但这里有一个单行字典理解:
{k:{a:b for a,b in zip(df.columns.tolist()[1:], v)}
for k,v in zip(df['name'].to_list(), df.iloc[:,1:].to_numpy().tolist())}
推荐阅读
- regex - 正则表达式通过匹配段落中的参考号来选择整个段落
- android - 使用 MediaButton 控制前台应用程序(无音频),后台有音频
- react-native - 翻转动画 React Navigation V5
- c++ - 如何在 QPixmap 中旋转照片?
- php - PHP 7.3.x 到 PHP 7.4.x 升级没有成功
- javascript - 第二次上传文件不起作用
- python - 虽然已安装但找不到 numpy 模块,但 import numpy 有效
- java - 为什么 java 标准输出不受 Windows 控制台中的“-Dfile.encoding”的影响?
- c++ - 节点/任务排序的深度优先搜索实现
- javascript - 在 Node.js 中读取文件