如何在Pandas中拆分DataFrame列并仅保留前两列(无需先删后留)
高效拆分Pandas DataFrame列并保留指定部分
你可以通过两种更简洁高效的方式实现需求,无需先创建冗余列再删除:
方法1:拆分后直接截取前两列
利用iloc直接提取拆分结果的前两列,避免生成不需要的第三列:
import pandas as pd df = pd.DataFrame({'AB': ['A1_B1_C1', 'A2_B2_C2']}) # 拆分后仅取前两列赋值给新列A、B df[['A', 'B']] = df['AB'].str.split('_', n=2, expand=True).iloc[:, :2]
执行后直接得到目标结果,无需额外删除操作。
方法2:使用正则表达式提取
通过str.extract直接匹配并提取前两个下划线分隔的片段,逻辑更直观:
import pandas as pd df = pd.DataFrame({'AB': ['A1_B1_C1', 'A2_B2_C2']}) # 正则匹配前两个非下划线片段 df[['A', 'B']] = df['AB'].str.extract(r'^([^_]+)_([^_]+)', expand=True)
正则表达式^([^_]+)_([^_]+)表示从字符串开头匹配第一个非下划线序列(对应A列),然后匹配下划线,再匹配第二个非下划线序列(对应B列),精准提取需要的部分。
两种方法都能避免冗余列的创建,比原方案更高效简洁。
内容的提问来源于stack exchange,提问作者DeltaIV
相关产品推荐
相关产品推荐

