我有一个 DataFrame,其中一列是看起来像这样的字符串行:
Received value 126;AOC;H3498XX from 602
Received value 101;KYL;0IMMM0432 from 229
我想删除(或替换为任何内容)第二个分号后面的部分,使其看起来像
Received value 126;AOC; from 602
但是我想删除的这一部分将具有变化且不可预测的长度(始终是 A-Z 和 0-9 的组合)。分号和 from 始终可供引用。
我正在尝试通过研究此链接来使用正则表达式:https://docs.python.org/3/library/re.html
import re
for row in df[‘column’]:
row = re.sub(‘;[A-Z0-9] from’ , ‘; from’, row)
我认为 [A-Z0-9] 未能包含我想要的不同长度方面。
最佳答案
使用 str.replace()
的示例与 str.split()
:
s = ['126;AOC;H3498XX from 602', '101;KYL;0IMMM0432 from 229']
for elem in s:
print(elem.replace(elem.split(";",2)[-1].split()[0],''))
输出:
126;AOC; from 602
101;KYL; from 229
编辑:
同样的方法也适用于以下示例:
s = ['Received value 126;AOC;H3498XX from 602', 'Received value 101;KYL;0IMMM0432 from 229']
for elem in s:
print(elem.replace(elem.split(";",2)[-1].split()[0],''))
输出:
Received value 126;AOC; from 602
Received value 101;KYL; from 229
关于python - 如何删除可变长度字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55612966/