【发布时间】:2016-03-23 13:46:28
【问题描述】:
乍一看,我认为这是一个简单的问题,但我找不到准确的答案...
我有一本这样的州名和缩写字典;
{(' ak', ',ak', ', ak', 'juneau', ',alaska', ', alaska'): 'alaska',
(' al', ',al', ', al', 'montgomery', ',alabama', ', alabama'): 'alabama',
(' ar', ',ar', ', ar', 'little rock', ',arkansas', ', arkansas'): 'arkansas',
(' az', ',az', ', az', 'phoenix', ',arizona', ', arizona'): 'arizona',
我正在尝试将此字典映射到我在 pandas 数据框中拥有的各种自我报告的 Twitter 位置案例,以查找部分匹配项。例如,如果一个案例显示为“anchorage,ak”,它会将值更改为阿拉斯加。如果它是一个列表,我可以看到这非常简单,但是必须有另一种方法来做到这一点而无需循环。非常感谢任何帮助!
【问题讨论】:
-
字符串中的键是否始终以逗号分隔?您希望字符串
'anchorage,ak,al'的输出是什么?另外,“改变价值”是什么意思? -
感谢您的回复。这是一个公平的观点,我不确定那个输出会是什么。它能否将第一个成功的匹配(在这种情况下为“,ak”)返回给阿拉斯加?通过更改值,我的意思是更改大小写以匹配字典值。
-
我认为以您字典的当前布局,如果没有循环,您将无法逃脱(为什么循环会是一件坏事?)-但是您是否考虑过像这样构建您的字典:@987654323 @?然后你只需用逗号
split你的字符串并查看其中一个结果是否在你的字典中。
标签: python dictionary pandas mapping ipython