如何将 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')
我正在尝试为 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')