前提:
将两列的数据,第一列作为key,第二列作为value,转化为dict
根据两列数据中的第二列排序,获得符合要求的值
然后根据符合要求的值(value)获取对应的key
报错:
个别无法获得相应的key,而且个别显示dict中无此value
原因:
在转换为dict的时候,出现了key重复,然后只保留了一个。对应的value进行了覆盖,造成了数据的缺失
os:一开始图代码简洁,直接转dict 然后根据value获取key ,但是忽略了dict的key-value特性!!!还浪费很多时间去找原因【小白写代码的时候还是不可以一味图方便】
解决:
根据第二列进行排序,写for循环,如果第二列符合要求,输出第一列!!!!
pps:dict的相关知识点
学习:
python相同key合并value_Python字典及基本操作(超级详细)_weixin_39635567的博客-CSDN博客
dataframe的两列转换成字典的key和value_老实巴交的小菜的博客-CSDN博客
学习:
python字典----根据value获取对应key - 代码天地
根据value获取key:
直接遍历,很简单,就不解释了,直接上代码:
def get_keys(d, value):
return [k for k,v in d.items() if v == value]
算是dict的一个小trick:
new_d = {v:k for k,v in d.items()}
dict.keys()和dict.values()函数都是按照dict顺序返回,变换成list后顺序仍旧不变,故可以直接用list.index()函数去索引list来定位。
list(d.keys())[list(d.values()).index("#你要索引的value")]