我试图为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
从Dict到Pandas:
相关问题 更多 >
编程相关推荐