【发布时间】:2018-04-03 01:36:55
【问题描述】:
问题:
我有一个 csv 文件,其中一列中包含部分城市名称(通常缺少前一个或两个字母),以及同一文件中的另一列,其中包含其他信息并且通常最后包含一两个缺少的字母那个字符串。
例如 第 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)
谢谢!
【问题讨论】:
-
如果您创建Minimal, Complete, and Verifiable 示例,您将获得更多更好的答案。尤其要确保输入和预期的测试数据是完整的(不是伪数据),并且可以很容易地剪切和粘贴到编辑器中,以便测试建议的解决方案。
-
您打算如何解析 CSV 文件?熊猫?标准库
csv模块?还有什么?如果您使用csv模块,“重复向下一列”仅表示“每一行”。在通常的for row in csv.reader(infile):循环中,您可以执行row[1] = row[1][:2] + row[3]或任何您想要的操作,然后像往常一样将其传递给writer.writerow(row)。
标签: python concatenation