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

2024-09-29 23:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为Geography类(CSV数据解析器程序)编写一个函数,该类将Pandas系列中列出的城市(称为cities)转换为城市ID

熊猫系列将是类似于df['Cities'] = 'New York'的东西。你知道吗

例如,纽约的城市id为1212。我从包含城市和城市ID的2系列中设置了一个字典,因此城市dict将具有类似city_dict = {New York:1212}的内容。你知道吗

然后我尝试将city\u dict的键与cities中的cities匹配,然后用city\u id替换cities中的cities。因此,在city\u dict中,如果键'New York'与cities中的字符串'New York'匹配,我会用'1212'替换cities中的'New York'(city\u dict中的值也是字符串,但是数字)。你知道吗

如何用city\u dict中的值(该值是城市的city\u id)替换城市中的数据(例如城市名称)?你知道吗

我想我可以简单地签入一个“if-in”语句,如果city\ u dict的键与城市中的数据匹配,熊猫系列。不能这么做,因为dict\ u的钥匙不易损坏。而且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)```



我想用str来包装city\u dict,然后使用

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

Tags: 数据idcitynewifkeysdictreplace

热门问题