如何在每个换行符(\n)处为Pandas DataFrame新增行?
Pandas拆分含换行符的列并匹配对应列值
原始数据
import pandas as pd df = pd.DataFrame({'A': ['foo\nbar', 'tre\ndex', 'hello\nworld'], 'B': ['abc', 'def', 'ghi']})
实现方法
直接利用Pandas的字符串拆分和行展开能力即可完成需求:
- 用
str.split('\n')将A列的字符串按换行符拆分为列表格式 - 用
explode()将列表中的每个元素拆分为单独一行,同时自动保留B列的对应值
完整代码:
# 拆分A列为列表 df['A'] = df['A'].str.split('\n') # 展开列表为多行并重置索引 df_final = df.explode('A').reset_index(drop=True)
也可以合并为一行代码:
df_final = df.assign(A=df['A'].str.split('\n')).explode('A').reset_index(drop=True)
结果验证
运行后得到的df_final如下:
A B 0 foo abc 1 bar abc 2 tre def 3 dex def 4 hello ghi 5 world ghi
内容的提问来源于stack exchange,提问作者Luiz Scheuer
相关产品推荐
相关产品推荐

