将DataFrame中含斜杠的行拆分为两行的实现方法
拆分DataFrame中含斜杠分隔的行
针对需求——把DataFrame里部分行中用斜杠分隔的No.、Name、Country列值拆分成多行,其他行保留原样,可以用Pandas的str.split和explode方法实现,步骤如下:
1. 构造示例DataFrame
先把你给出的示例数据转成Pandas DataFrame:
import pandas as pd df = pd.DataFrame({ 'No.': ['100', '200', '100/200', '100', '200'], 'Name': ['name-one', 'name-two', 'name-one/name-two', 'name-one', 'name-two'], 'Country': ['SPA', 'FRA', 'SPA/FRA', 'SPA', 'FRA'] })
2. 拆分并展开行
对目标列按斜杠拆分生成列表,再一次性展开所有列的列表元素为独立行:
# 按斜杠拆分每个目标列的内容,无斜杠的内容会自动转为单元素列表 df[['No.', 'Name', 'Country']] = df[['No.', 'Name', 'Country']].apply(lambda x: x.str.split('/')) # 同时展开三个列的列表,将每个列表元素拆为单独行 df = df.explode(['No.', 'Name', 'Country'], ignore_index=True)
结果验证
执行完上述代码后,打印df会得到如下结果:
No. Name Country 0 100 name-one SPA 1 200 name-two FRA 2 100 name-one SPA 3 200 name-two FRA 4 100 name-one SPA 5 200 name-two FRA
这个方法不仅能处理双值拆分,就算某列有多个斜杠(比如100/200/300),也能自动拆成对应数量的行,且保证各列拆分后的内容一一对应。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

