如何批量处理大型DataFrame的TIME列,截取每行/之前的内容?
处理DataFrame中TIME列,保留斜杠前的内容
你的循环写法完全没对字符串做实际切割处理,只是空转循环,也没修改原DataFrame的内容,自然得不到预期结果。给你几种高效的实现方式:
- 方法一:使用
str.split分割字符串
这是最直观的方式,按斜杠分割后取第一部分:
DATA['TIME'] = DATA['TIME'].str.split('/').str[0]
- 方法二:使用
str.extract提取目标内容
适合需要用正则匹配的场景,提取斜杠前的所有字符:
DATA['TIME'] = DATA['TIME'].str.extract(r'(.*?)/', expand=False)
- 方法三:使用
str.replace替换掉多余内容
把斜杠及之后的所有字符替换为空:
DATA['TIME'] = DATA['TIME'].str.replace(r'/.*', '', regex=True)
以上都是pandas的矢量化操作,比逐行循环效率高得多,尤其是数据量较大时效果更明显。
内容的提问来源于stack exchange,提问作者user20737601
相关产品推荐
相关产品推荐

