Python 当应该有值时,dictionary返回none
我有一个小样本数据集:Python 当应该有值时,dictionary返回none,python,dictionary,pandas,Python,Dictionary,Pandas,我有一个小样本数据集: import pandas as pd df = {'ID': ['H576','H577','H578','H600', 'H700'], 'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']} df = pd.DataFrame(df) 我用pandas阅读了这篇文章,并将这两列转换为字典,其中“ID”是键,“CD”是值: dictionary = df.set_index('ID')['CD']
import pandas as pd
df = {'ID': ['H576','H577','H578','H600', 'H700'],
'CD': ['AAAAAAA', 'BBBBB', 'CCCCCC','DDDDDD', 'EEEEEEE']}
df = pd.DataFrame(df)
我用pandas阅读了这篇文章,并将这两列转换为字典,其中“ID”是键,“CD”是值:
dictionary = df.set_index('ID')['CD'].to_dict()
因为我需要做其他事情(我将不详细介绍,这是一个很长的故事,我的实际脚本是包含许多其他事情的长脚本),所以我需要将字典保存为值键对,相反:
reversedic = dict()
for key, val in dictionary.items():
reversedic.pop(val, key) #python 2.7 uses dic.append() but for the python I have which is 3.5, 'dict' object has no attribute 'append', so is pop the correct code?
稍后在我的较大脚本中,当给定“CD”值时,我需要获取“ID”
z = reversedic.get('AAAAAAA')
print(z)
本应返回H576,但返回“无” 关于dict.pop()的文档: 弹出(键[,默认]) 如果键在字典中,请删除它并返回其值,否则返回默认值。如果未提供默认值,并且密钥不在字典中,则会引发KeyError 如果要将键值对添加到字典中,请使用
reversedic[key] = val
从有关dict.pop()的文档中: 弹出(键[,默认]) 如果键在字典中,请删除它并返回其值,否则返回默认值。如果未提供默认值,并且密钥不在字典中,则会引发KeyError 如果要将键值对添加到字典中,请使用
reversedic[key] = val
为什么不直接:
reverseDict = {v:k for k,v in dictionary.iteritems()}
In [14]: reverseDict['AAAAAAA']
Out[14]: 'H576'
为什么不直接:
reverseDict = {v:k for k,v in dictionary.iteritems()}
In [14]: reverseDict['AAAAAAA']
Out[14]: 'H576'
pop()
返回传递给它的键的值。第二个参数是默认值,如果字典中不存在key
,则返回该值
您只需执行以下操作:
reversedic[key] = value
pop()
返回传递给它的键的值。第二个参数是默认值,如果字典中不存在key
,则返回该值
您只需执行以下操作:
reversedic[key] = value
因为这样创建第一个Dict
dictionary = df.set_index('ID')['CD'].to_dict()
为什么不呢
reversedic = df.set_index('CD')['ID'].to_dict()
然后:
z = reversedic.get('AAAAAAA')
print(z)
或
因为这样创建第一个Dict
dictionary = df.set_index('ID')['CD'].to_dict()
为什么不呢
reversedic = df.set_index('CD')['ID'].to_dict()
然后:
z = reversedic.get('AAAAAAA')
print(z)
或
有什么原因不能直接用pandas创建反向字典,即reversedic=df.set_index('CD')['ID'])to_dict()
?这是一个好的观点吗?有什么原因不能直接用pandas创建反向字典,即reversedic=df.set_index('CD')['ID'])to_dict()
?这是一个很好的观点,这是从dict中删除键,而不是返回键值。这就是OP想要缩短的dict。这是从dict中删除键,而不是返回键值。这就是OP想要的一个简短的dict。这实际上是最简单的方法,但因为我的问题是关于didf的。我接受了别人的回答。这其实是最简单的方法,但因为我的问题是问一个DIDF。我接受了别人的回答。谢谢