如何从DataFrame列中提取字符串前3个字符并存入新列
问题描述
需要从Pandas DataFrame的'A'列中提取每个字符串的前3个字符(字母或数字均可),并将结果存入新列'C'中。
示例数据:
A B 12525 1FWE23 14654 22354 24798 32684 38945 45368 46456 46485 AD545 45346 A5D66 58446
预期结果:
A B C 12525 1FWE23 125 14654 22354 146 24798 32684 247 38945 45368 389 46456 46485 464 AD545 45346 AD5 A5D66 58446 A5D
解决方案
利用Pandas的字符串切片方法str[:3]即可快速实现需求,具体操作如下:
核心代码
如果'A'列已经是字符串类型,直接执行:
df['C'] = df['A'].str[:3]
如果'A'列是数值类型(如整数),需要先转换为字符串再切片:
df['C'] = df['A'].astype(str).str[:3]
完整示例代码
import pandas as pd # 构建示例DataFrame df = pd.DataFrame({ 'A': ['12525', '14654', '24798', '38945', '46456', 'AD545', 'A5D66'], 'B': ['1FWE23', '22354', '32684', '45368', '46485', '45346', '58446'] }) # 生成新列C df['C'] = df['A'].str[:3] # 输出结果 print(df)
执行后即可得到与预期一致的DataFrame,该方法对纯数字、字母数字混合的字符串均有效。
内容的提问来源于stack exchange,提问作者Pravin
相关产品推荐
相关产品推荐

