Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当应该有值时,dictionary返回none_Python_Dictionary_Pandas - Fatal编程技术网

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。我接受了别人的回答。谢谢