将三列数据加载为双层字典的方法

本文介绍了一种使用Pandas将数据转换为字典的方法,特别适用于处理包含id、name和name_standard三列数据的情况,最终生成的字典以id为一级索引,name为二级索引。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas转换成字典的办法

   #三列数据为 id, name, name_standard;最后生成id为一级索引,name为二级索引。
test1 = pd.read_excel(name_standard_dict)
    d = dict()
    for _, row in test1.iterrows():
        id, name, name_standard = row
        d.setdefault(id, {}).update({name: name_standard})

 

使用VBA实现下面的功能: 1. Excel 版本为 2016版,处理大数据量。工作表事件代码与主代码分开显示。 2. 打开的Excel含有History.Cost 和 DataBase 两个工作表,下述History.Cost工作表简称为HC表,DataBase工作表简称为DB表。 3. HC表作为日常操作表格,数据经常会变动。其中第E、F、G、U、W、AF、AI列均为数字输入,空值默认为0,如果有非数字输入则提示报错。 4. DB表作为基础数据表格,只需每次打开工作表的时候加载所需数据即可。 5. HC表的A列和B列进行重复单元格标示,即只要A列和B列区域有重复数据,就用颜色(250,128,114)对重复的单元格进行标示。 6. HC表的A列和B列单元格有新数据录入后,自动更新重复标示功能。 7. 从HC表的第2行开始,判断A列是否有数据,如过有数据,则开始对HC表第2行开始的需要赋值的各列按下列规则赋值 7.1 使用HC表I列的数据对DB表B列进行数据查询 7.2 使用HC表E列的数据对DB表C列进行数据查询 7.3 记录同时符合7.1和7.2规则的DB表D列至R列的数据 7.4 每次点击文件保存按钮时,启动赋值规则。 8. HC表第J列(重量计算)赋值规则: 8.1 计算HC表E列和H列的乘积 8.2 将J列赋值为规则7.3记录数据的DB表D列与规则8.1的乘积 9. HC表第L列(重量单价)赋值规则: 9.1 将L列赋值为规则7.3记录数据的DB表E列数据 10. HC表第M列(材料费用)赋值规则: 10.1 调取规则7.3记录数据的DB表H列数据 10.2 如果规则10.1数据为字符W,M列赋值为HC表J列、K列和L列的乘积 10.3 如果规则10.1数据为字符S,M列赋值为HC表H列、K列和L列的乘积 11. HC表第N列(喷涂单价)赋值规则: 11.1 判断HC表C列内是否含有NPT字符 11.2 判断HC表P列内是否有数值 11.3 如果规则11.1或规则11.2 任一判断为真,则N列赋值为0; 11.4 如果规则11.3不成立,则N列赋值为规则7.3记录数据的DB表F列数据 12. HC表第O列(喷涂费)赋值规则: 12.1 计算HC表第G列除以1000后的值 12.2 如果HC表B列不为空,则运行规则12.3;如果HC表B列为空,则运行规则12.4 12.3 使用HC表B列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AB列数据,并将HC表O列赋值为规则12.1与DB表AB列数据的乘积。如果没有匹配结果则运行规则12.4 12.4 使用HC表C列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AB列数据,并将HC表O列赋值为规则12.1与DB表AB列数据的乘积。如果没有匹配结果则运行规则12.5 12.5 如果规则12.3与规则12.4均没有匹配结果,将HC表O列赋值为HC表H列与N列的乘积 13. HC表第T列(激光切割单价)赋值规则: 13.1 将HC表T列赋值为规则7.3记录数据的DB表I列数据 14. HC表第V列(切割费)赋值规则: 14.1 计算HC表T列与HC表U列的乘积 14.2 如果HC表B列不为空,则运行规则14.3;如果HC表B列为空,则运行规则14.4 14.3 使用HC表B列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AC列数据,并将HC表V列赋值为规则14.1与DB表AC列数据之和。如果没有匹配结果则运行规则14.4 14.4 使用HC表C列数据对DB表Y列进行数据匹配,如果有匹配结果,则返回DB表AC列数据,并将HC表V列赋值为规则14.1与DB表AC列数据之和。如果没有匹配结果则运行规则14.5 14.5 如果规则12.3与规则12.4均没有匹配结果,将HC表V列赋值为规则14.1的计算结果 15. HC表第X列(折弯单价)赋值规则: 15.1 HC表W列大于零,运行此赋值规则 15.2 规定DB表第S列的各行为以下数值500、1000、2000、3000、3200、3300中的任意一个 15.3 如果HC表第F列和G列均有数据,用变量名MAXL记录F列与G列的最大值;否则将HC表X列赋值为0 15.4 使用规则MAXL与规则15.2的所列数值进行比较,并按下列比较规则记录比较结果: 15.4.1 MAXL<=500,记录所有DB表S列数据为500的DB表T列与U列数据 15.4.2 500<MAXL<=1000,记录所有DB表S列数据为1000的DB表T列与U列数据 15.4.3 1000<MAXL<=2000,记录所有DB表S列数据为2000的DB表T列与U列数据 15.4.4 2000<MAXL<=3000,记录所有DB表S列数据为3000的DB表T列与U列数据 15.4.5 3000<MAXL<=3200,记录所有DB表S列数据为3200的DB表T列与U列数据 15.4.6 MAXL>3200,记录所有DB表S列数据为3300的DB表T列与U列数据 15.5 使用HC表的E列对规则15.4所记录数据的DB表T进行数据匹配,匹配成功后返回DB表U列的数据 15.6 HC表X列赋值为MAXL与规则15.5返回数据的乘积 16. HC表第Z列(购买件费用)赋值规则: 16.1 计算HC表第G列除以1000后的值 16.2 如果HC表B列不为空,则运行规则16.3;如果HC表B列为空,则运行规则16.5 16.3 使用HC表B列数据对DB表W列进行数据匹配,如有匹配结果,则HC表Z列赋值为DB表X列数据。如果没有匹配结果,则继续运行规则16.3 16.4 使用HC表B列数据对DB表AA列进行数据匹配,如有匹配结果,则HC表Z列赋值为规则16.1计算数值DB表AB列数据的乘积。如果没有匹配结果,则继续运行规则16.5 16.5 使用HC表C列数据对DB表W列进行数据匹配,如有匹配结果,则HC表Z列赋值为DB表X列数据。如果没有匹配结果,则继续运行规则16.6 16.6 使用HC表C列数据对DB表AA列进行数据匹配,如有匹配结果,则HC表Z列赋值为规则16.1计算数值DB表AB列数据的乘积。如果没有匹配结果,则赋值为0 17. HC表第AC列(焊接单价)赋值规则: 17.1 使用HC表AB列数据对DB表AF列进行数据匹配,HC表AC列赋值为DB表AG列的返回数据 18. HC表第AG列(激光穿孔)赋值规则: 18.1 HC表AG列赋值为规则7.3记录数据的DB表J列数据 19. HC表第AJ列(钳工单价)赋值规则: 19.1 使用HC表AI列数据对DB表K1至R1进行数据匹配 19.2 HC表AJ列赋值为规则19.1所匹配列和7.3记录数据的DB表匹配结果 20. HC表第AL列赋值规则: 20.1 判断HC表C列内是否含有Deck字符,如有则返回规则7.3记录数据的DB表H列的数据;如不含有Deck字符,则赋值为0
最新发布
07-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值