Python 数据帧中某列上的.map出现NaN错误
我有一个我正在使用的数据框,它包含一个列,列中拼写了州名称,我正试图将其转换为两个字母的缩写形式。我找到了一个包含所有州名称的单独cvs文件,并将其转换为字典。然后,我尝试使用该字典映射列,但我的输出列出现了一个错误 我拥有的原始数据框包含一列,其中城市和州分组在一起。我把它们分成了两个独立的栏目,而州就是我在玩的那个栏目 以下是我的数据帧在拆分后的样子:Python 数据帧中某列上的.map出现NaN错误,python,pandas,Python,Pandas,我有一个我正在使用的数据框,它包含一个列,列中拼写了州名称,我正试图将其转换为两个字母的缩写形式。我找到了一个包含所有州名称的单独cvs文件,并将其转换为字典。然后,我尝试使用该字典映射列,但我的输出列出现了一个错误 我拥有的原始数据框包含一列,其中城市和州分组在一起。我把它们分成了两个独立的栏目,而州就是我在玩的那个栏目 以下是我的数据帧在拆分后的样子: print(newtop50.head()) city_state 2018
print(newtop50.head())
city_state 2018 city state
11698 New York, New York 8398748 New York New York
1443 Los Angeles, California 3990456 Los Angeles California
3415 Chicago, Illinois 2705994 Chicago Illinois
17040 Houston, Texas 2325502 Houston Texas
665 Phoenix, Arizona 1660272 Phoenix Arizona
这是我的字典中的几行内容:
print(states_dic)
{'Alabama': 'AL', 'Alaska': 'AK', 'Arizona': 'AZ', 'Arkansas': 'AR', 'California': 'CA', 'Colorado': 'CO', 'Connecticut': 'CT', 'Delaware': 'DE', 'District of Columbia': 'DC', 'Florida': 'FL', 'Georgia': 'GA', 'Hawaii': 'HI', 'Idaho': 'ID'
以下是我尝试过的:
newtop50['state'] = newtop50['state'].map(states_dic)
print(newtop50.head())
city_state 2018 city state
11698 New York, New York 8398748 New York NaN
1443 Los Angeles, California 3990456 Los Angeles NaN
3415 Chicago, Illinois 2705994 Chicago NaN
17040 Houston, Texas 2325502 Houston NaN
665 Phoenix, Arizona 1660272 Phoenix NaN
不太确定我在这里遗漏了什么?您已经解释过,您已经将
城市州
列拆分为城市
和州
。要使map
起作用,该值必须完全匹配。我推测在state序列的两边都有空格
试着做
newtop50['state'].str.strip().map(states_dic)
如果您不想手动创建映射(因为示例中缺少值),可以使用模块:
状态列的数据类型是什么?状态列的数据类型是object。@Lee Ok。检查我的答案。
import us
states_dic=us.states.mapping('name', 'abbr')
df.state.map(states_dic)
11698 NY
1443 CA
3415 IL
17040 TX
665 AZ