我是Python的初学者
现在我的Excel文件中有两列。一个是国家栏,另一个是城市栏
对于国家/地区列,大多数值显示在国家/地区代码中,其中一些值显示在国家/地区全名中,而一些值是美国州代码,其中不到1%为空
对于城市列,它清楚地显示了完整的城市名称(而不是城市代码),而其中近20%为空白
如何使用Python创建一个新列,根据国家代码显示完整的国家名称,如果在国家列中显示完整的国家名称,并且在新列中显示美国代码作为美国,则该列的名称保持不变
棘手的部分是,在国家栏中,以CO为例,CO可以代表哥伦比亚和科罗拉多,我不能确定一开始它是一个国家还是一个州,但当我检查相应的城市名称时,我可以知道它是一个国家还是一个州(例如:科罗拉多州的朗蒙特,哥伦比亚州的波哥大)。如何在新列中避免此问题,并根据相应的城市名称推断新列中的完整国家名称
我感谢你的帮助
解释
使用以下逻辑对任务进行编码
注意:字符串匹配使用模糊匹配,以允许名称拼写的灵活性 rapidfuzz库的使用优于FuzzyFuzzy,因为它比FuzzyFuzzy快一个数量级
代码
数据
测试
Excel文件(输入)
测试代码
结果数据帧
这种方法的一个建议是创建字典(即
dic = {'CO':'Colombia',...}
和dic_state = {'CO':'Colorado',...})
)。然后,可能有一个if语句来检查国家是否是美国。如果是美国,则使用dic_state
。最后,您可以使用适当的命令创建一个新列(这取决于您使用的包/模块)祝你好运
您可以使用{key(state):Values(cities归属于states)}json并使用python读取文件,并将列表排列到相应的城市state
相关问题 更多 >
编程相关推荐