问题:
我有一个csv文件,其中一个列中有部分城市名称(通常缺少前一个或两个字母),同一个文件中有另一列,其中包含其他信息,并且通常最后包含一个或两个丢失的字母那个字符串。
e.g。 第1栏 约克
第3栏 单词Ne
我关于如何处理此问题的逻辑是使用具有有效城市名称的单独CSV文件,并在串联前后执行VLOOKUP的Python版本,以便只有在它与有效城市不匹配时才会连接数据
我被困在如何从第3列中的字符串末尾实际拉出一个或两个字符(子字符串,但重复向下一列)并将其与第1列中字符串的开头合并,但我已经知道了如何执行我的其余想法。
以下是使用Pandas进行连接的一般脚本:
pd.concat([col1, col2.set_axis(col1.index[-len(col2):], inplace=False)], axis=1)
添加-2会解决问题吗?即。
pd.concat([col1, col2.set_axis(col1.index[-len(col2)-2:], inplace=False)], axis=1)
谢谢!
答案 0 :(得分:0)
如果您决定使用Pandas,在将csv加载到pandas数据帧后,您可以通过这种方式从第3列中提取最后1或2个字符,并以这种方式将其添加到第2列:
df_city_names['col3'].map(lambda x: "".join(str(x)[-(2 if len(str(x)) > 1 else 1 if len(str(x)) > 0 else ''):])) + df_city_names['col2']