如何用Python将单元格内的合并产品字符串拆分为多行?
实现合并产品字段拆分并展开行的Python方案
方法一:使用Pandas(推荐,适合处理表格数据)
Pandas是处理结构化数据的首选工具,通过str.split结合explode可以快速实现需求:
import pandas as pd # 构造原始数据 data = { 'product': ['Prdct_1Prdct_2Prdct_3Prdct_4Prdct_5Prdct_6'], 'date': ['23.7.2022'], 'value': [100] } df = pd.DataFrame(data) # 拆分product列:用正向预查正则,确保每个产品前缀完整保留 df['product'] = df['product'].str.split(r'(?=Prdct_)') # 将拆分后的列表展开为独立行 df = df.explode('product').reset_index(drop=True) # 输出结果 print(df)
执行后得到的结果:
| product | date | value |
|---|---|---|
| Prdct_1 | 23.7.2022 | 100 |
| Prdct_2 | 23.7.2022 | 100 |
| Prdct_3 | 23.7.2022 | 100 |
| Prdct_4 | 23.7.2022 | 100 |
| Prdct_5 | 23.7.2022 | 100 |
| Prdct_6 | 23.7.2022 | 100 |
方法二:纯Python实现(无需第三方库)
如果不需要依赖Pandas,用标准库的正则模块也能完成:
import re # 原始数据行 original_data = { 'product': 'Prdct_1Prdct_2Prdct_3Prdct_4Prdct_5Prdct_6', 'date': '23.7.2022', 'value': 100 } # 提取所有符合格式的产品 products = re.findall(r'Prdct_\d+', original_data['product']) # 生成拆分后的行列表 result = [] for prod in products: result.append({ 'product': prod, 'date': original_data['date'], 'value': original_data['value'] }) # 打印结果 for row in result: print(row)
输出结果:
{'product': 'Prdct_1', 'date': '23.7.2022', 'value': 100} {'product': 'Prdct_2', 'date': '23.7.2022', 'value': 100} {'product': 'Prdct_3', 'date': '23.7.2022', 'value': 100} {'product': 'Prdct_4', 'date': '23.7.2022', 'value': 100} {'product': 'Prdct_5', 'date': '23.7.2022', 'value': 100} {'product': 'Prdct_6', 'date': '23.7.2022', 'value': 100}
内容的提问来源于stack exchange,提问作者anewone
相关产品推荐
相关产品推荐

