如何仅对Value>1的行按‘/’分隔符拆分Company列?
解决方案
这里以Python的Pandas库为例,实现仅对Value列大于1的行拆分Company列的需求:
代码实现
import pandas as pd # 加载原始数据(实际场景可替换为读取文件的代码,如pd.read_csv/pd.read_excel) raw_data = { 'Company': ['ABC Inc/BCD Corp.', 'CDE Inc./ABG Corp', 'AGB Inc/GHU Corp.'], 'Value': [1, 11, 5] } df = pd.DataFrame(raw_data) # 拆分逻辑 # 1. 筛选出不需要拆分的行(Value <= 1) non_split_rows = df[df['Value'] <= 1] # 2. 处理需要拆分的行:拆分Company列并展开为多行 split_rows = df[df['Value'] > 1].assign( Company=lambda x: x['Company'].str.split('/') ).explode('Company', ignore_index=True) # 3. 合并结果 final_result = pd.concat([non_split_rows, split_rows], ignore_index=True) # 输出为Markdown表格格式 print(final_result.to_markdown(index=False))
代码说明
- 筛选拆分范围:通过
df['Value'] > 1精准定位需要拆分的行,避免无差别处理所有数据; - 拆分与展开:用
str.split('/')将Company列按分隔符拆分为列表,再通过explode方法将列表中的每个元素单独成行,同时保留对应行的Value值; - 合并结果:将未拆分的行和拆分后的行合并,得到符合需求的最终数据。
运行代码后输出的Markdown表格与你期望的结果一致:
| Company | Value | |:------------------|--------:| | ABC Inc/BCD Corp. | 1 | | CDE Inc. | 11 | | ABG Corp | 11 | | AGB Inc | 5 | | GHU Corp. | 5 |
内容的提问来源于stack exchange,提问作者wantutri
相关产品推荐
相关产品推荐

