【发布时间】:2023-01-31 00:42:17
【问题描述】:
我有一个 csv,其中有一列应该是其他两列的串联,但我需要检查这是否属实。
extID,Name,internalID
abc.xyz.123,01312023_A-es-us,abc.xyz.123_01312023_A-es-us
abc.xyz.123,01312023_H-es-us,abc.xyz.123_01312023_H-es-us
abc.xyz.456,01312023_A-es-us,abc.xyz.456_01312023_A-es-us
abc.xyz.456,01312023_H-es-us,abc.xyz.456_01312023_H-es-us
abc.xyz.789,01312023_N_es-us,abc.xyz.789_01312023_N_es-us
abc.xyz.876,01312023_N_es-us,abc.xyz.876_01312023_A_es-ca
abc.xyz.123,01312023_A-en-us,abc.xyz.123_01312023_A-en-us
internalID 应该是 extID 和 Name 的串联,由 _ 分隔。但是你可以在第 6 行看到,情况并非如此。所以我想创建一个显示通过/失败状态的新列。
extID Name internalID isCorrect?
abc.xyz.123 01312023_A-es-us abc.xyz.123_01312023_A-es-us PASS
abc.xyz.123 01312023_H-es-us abc.xyz.123_01312023_H-es-us PASS
abc.xyz.456 01312023_A-es-us abc.xyz.456_01312023_A-es-us PASS
abc.xyz.456 01312023_H-es-us abc.xyz.456_01312023_H-es-us PASS
abc.xyz.789 01312023_N_es-us abc.xyz.789_01312023_N_es-us PASS
abc.xyz.876 01312023_N_es-us abc.xyz.876_01312023_A_es-ca FAIL
abc.xyz.123 01312023_A-en-us abc.xyz.123_01312023_A-en-us PASS
除了 regex + str.contains 之外,还有更好的方法吗?
【问题讨论】: