如何将 Python 字典的值转换为 Pandas 系列中的数据?

How can I convert a Python dictionary's values to data in a Pandas series?

我正在尝试为 Geography class(CSV 数据解析器程序)编写一个函数,将 Pandas 系列(称为 Cities )中列出的城市转换为城市 ID。

Pandas 系列与 df['Cities'] = 'New York' 类似。

例如,纽约的 city_id 为 1212。​​我从包含城市和城市 ID 的 2 系列中设置了一个字典,因此 city_dict 会像 city_dict = {New York:1212}.

然后我尝试将 city_dict 的键与 Cities 中的城市进行匹配,然后将 Cities 中的城市替换为 city_id。因此,在 city_dict 中,如果键 'New York' 与 Cities 中的字符串 'New York' 匹配,我会将 Cities 中的 'New York' 替换为“1212”(也是 city_dict 是一个字符串,但是数字 ).

如何用 city_dict 中的值(该值是城市的 city_id )替换 Cities 中的数据(例如城市名称)?

我认为如果 city_dict 的键与 Pandas 系列城市中的数据匹配,我可以简单地检查 'if in' 语句。无法做到这一点,因为 dict_keys 无法散列。 replace()(如用 city_dicts 值替换系列中的数据)也不起作用,因为 Python 中的词典不适用于 replace()

这是我的功能的基础:

def coding(file, file2):
     list1 = []
     list2 = []
     df = pd.read_csv(file, names=columns, header=None, encoding='utf-8')
     df2 = pd.read_csv(file2, names=codes_columns,header=None, encoding='utf-8')
     dfCity = df['Cities']
     df2id = df2['city_id']
     df2city = df2['City']
     df2id = (df2id) 
     df2city = (df2city) # same as above
     city_dict = dict(zip(df2city,df2id))
     keys = city_dict.keys() 
     keyss = str(list(keys)) 
     strnewdict = str(newdict)
     strkeys = str(keys)
     strdf2id = str(df2id)
     strvalue = str(city_dict.values())
     if dfCity.str.contains('UNKNOWN').any():
           dfCity = dfCity.replace('UNKNOWN','')

     for _ in range(1):
         if dfCity.str.contains(keyss).any():
                 dfCity.replace(keyss,df2id)```



我想用 city_dict 包裹一个 str,然后使用

if Cities.str.contains(keyss).any():
(Keyss being the stringfied keys of city_dict)
But that wasn't useful either 
The ultimate goal is to replace the cities with their city_id's and append them to a list, and overwrite the dfCity Series in a new file

从字典到 Pandas:

import pandas as pd
df = pd.DataFrame.from_dict(YOURDICT, orient='index')