You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于两列新增行:Year行后按Column3值生成Year period行

实现表格按规则新增行的解决方案

需求规则

  • 当表格中Column1的值为Year时,在该行下方插入一行,该行Column1固定为Year period
  • 插入行的Column3值由对应Year行的Column3值判断:
    • 若原行Column3 < 2010,插入行Column3为Below2010
    • 若原行Column3 ≥ 2021,插入行Column3为Above2020
    • 若2010 ≤ Column3 ≤ 2020,插入行Column3为Range in 2010/2020
  • 插入行的其余列数据与对应Year行完全一致

输入表格

Column1  Column2 ColumnX  Column3
0    Year        1       A     2009
1    Date        1       A       12
2    Year        2       A     2021
3    Year        3       A     2011

预期输出表格

Column1  Column2 ColumnX             Column3
0         Year        1       A                2009
1  Year period        1       A           Below2010
2         Date        1       A                  12
3         Year        2       A                2021
4  Year period        2       A           Above2020
5         Year        3       A                2011
6  Year period        3       A  Range in 2010/2020

Python Pandas实现代码

import pandas as pd

# 初始化输入数据(实际使用时可替换为读取文件,如pd.read_csv())
input_data = {
    'Column1': ['Year', 'Date', 'Year', 'Year'],
    'Column2': [1, 1, 2, 3],
    'ColumnX': ['A', 'A', 'A', 'A'],
    'Column3': [2009, 12, 2021, 2011]
}
df = pd.DataFrame(input_data)

# 存储需要插入的行
insert_rows = []
for _, row in df.iterrows():
    if row['Column1'] == 'Year':
        new_row = row.copy()
        new_row['Column1'] = 'Year period'
        # 匹配Column3的规则
        if row['Column3'] < 2010:
            new_row['Column3'] = 'Below2010'
        elif row['Column3'] >= 2021:
            new_row['Column3'] = 'Above2020'
        else:
            new_row['Column3'] = 'Range in 2010/2020'
        insert_rows.append(new_row)

# 重组所有行,确保插入行紧跟对应Year行
final_rows = []
insert_idx = 0
for _, row in df.iterrows():
    final_rows.append(row)
    if row['Column1'] == 'Year':
        final_rows.append(insert_rows[insert_idx])
        insert_idx += 1

# 生成最终表格并重置索引
result_df = pd.DataFrame(final_rows).reset_index(drop=True)
print(result_df.to_string())

代码说明

  1. 先构造输入DataFrame,实际场景中可替换为pd.read_csv()或其他方式读取表格数据
  2. 遍历原表格,筛选出Column1为Year的行,复制后按规则修改Column1和Column3,存入插入行列表
  3. 再次遍历原表格,依次添加原行和对应的插入行,保证插入行的位置正确
  4. 将所有行转换为新的DataFrame并重置索引,得到符合预期的结果

内容的提问来源于stack exchange,提问作者Eswar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:25:15