Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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 使用字典中的键值将列添加到pandas.Dataframe_Python_Pandas_Dictionary - Fatal编程技术网

Python 使用字典中的键值将列添加到pandas.Dataframe

Python 使用字典中的键值将列添加到pandas.Dataframe,python,pandas,dictionary,Python,Pandas,Dictionary,我有以下数据框: 我有下面的字典: d = {v:k for k, v in resource_ids_dict.items()} #alternative #d = dict(zip(resource_ids_dict.values(), resource_ids_dict.keys())) df['new'] = df['ResourceSetID'].map(d) 资料来源:奥地利:158623272,“保加利亚”:1550004006,“克罗地亚”:1131119835,“丹麦”:17

我有以下数据框:

我有下面的字典:

d = {v:k for k, v in resource_ids_dict.items()}
#alternative
#d = dict(zip(resource_ids_dict.values(), resource_ids_dict.keys()))
df['new'] = df['ResourceSetID'].map(d)
资料来源:奥地利:158623272,“保加利亚”:1550004006,“克罗地亚”:1131119835,“丹麦”:1703440195, “芬兰”:2005848983,“法国”:1264698819,“德国”:1907737079,“希腊”:2113941104, “意大利”:27898245,“荷兰”:1832579427,“挪威”:1054291604,“波兰”:1188865122, “罗马尼亚”:270819662;“俄罗斯”:2132391298;“塞尔维亚”:1155274960;“南非”:635838568, “西班牙”:52600180,“瑞士”:842323896,“土耳其”:1716131192,“英国”:199152257} 我使用上述字典值来调用供应商API。然后,我将所有返回数据附加到数据帧df中

我现在想做的是在ID之后添加一列,它是ResourceSetID中dictionary值的字典键

我在网上浏览了一下,但没有找到任何东西,可能是因为我缺乏准确的关键字搜索。当然这应该是一个班轮?我希望避免在数据帧和字典中循环并以这种方式映射。

使用,但首先必须使用字典中的键交换值:

d = {v:k for k, v in resource_ids_dict.items()}
#alternative
#d = dict(zip(resource_ids_dict.values(), resource_ids_dict.keys()))
df['new'] = df['ResourceSetID'].map(d)
使用但首先必须使用字典中的键交换值:

d = {v:k for k, v in resource_ids_dict.items()}
#alternative
#d = dict(zip(resource_ids_dict.values(), resource_ids_dict.keys()))
df['new'] = df['ResourceSetID'].map(d)

谢谢它正在完成任务,但返回以下警告:C:\Users\User\Documents\Anaconda\lib\site packages\ipykernel\u launcher.py:5:SettingWithCopyWarning:试图在数据帧切片的副本上设置值。尝试使用.loc[row\u indexer,col\u indexer]=value,请参见文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.htmlreturning-a-view-versus-a-copy . 你知道这意味着什么吗?@Dean-这意味着数据帧是由某个过滤器创建的,需要。复制好,所以你要复制你过滤过的数据帧,而不是改变原来的数据帧本身?@Dean-确切地说,你需要修改你的代码,然后再以类似的方式映射-如果仍然存在问题,请给我看地图之前使用的代码,我可以帮你找到需要添加的地方。copyNo,太好了。谢谢你的解释。我对python还是很陌生,所以对我来说最重要的是要理解:df是原始数据帧的“过滤”版本,因为只需要原始10+中的3列。所以,复制效果很好-再次感谢!谢谢它正在完成任务,但返回以下警告:C:\Users\User\Documents\Anaconda\lib\site packages\ipykernel\u launcher.py:5:SettingWithCopyWarning:试图在数据帧切片的副本上设置值。尝试使用.loc[row\u indexer,col\u indexer]=value,请参见文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.htmlreturning-a-view-versus-a-copy . 你知道这意味着什么吗?@Dean-这意味着数据帧是由某个过滤器创建的,需要。复制好,所以你要复制你过滤过的数据帧,而不是改变原来的数据帧本身?@Dean-确切地说,你需要修改你的代码,然后再以类似的方式映射-如果仍然存在问题,请给我看地图之前使用的代码,我可以帮你找到需要添加的地方。copyNo,太好了。谢谢你的解释。我对python还是很陌生,所以对我来说最重要的是要理解:df是原始数据帧的“过滤”版本,因为只需要原始10+中的3列。所以,复制效果很好-再次感谢!