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

如何基于计算规则将Pandas单个数据行拆分为多条独立行?

Pandas 按季度拆分单行到多行解决方案

实现代码

方式1:先创建Quarterly列再拆分

适合需要调试查看中间计算结果的场景,代码如下:

import pandas as pd

# 初始数据
df = pd.DataFrame({"Name": ["Bob", "Mary", "Amy"], "Age": [22, 35, 58], "EarningsYearly": [100,200,50],})

# 计算季度收入
df['Quarterly'] = df['EarningsYearly'] / 4
# 为每行添加四个季度的列表
df['Quarter'] = [['Q1', 'Q2', 'Q3', 'Q4']] * len(df)
# 拆分列表到多行
df_exploded = df.explode('Quarter', ignore_index=True)

方式2:创建Quarterly列同时完成拆分

无需提前生成中间列,代码更简洁:

import pandas as pd

df = pd.DataFrame({"Name": ["Bob", "Mary", "Amy"], "Age": [22, 35, 58], "EarningsYearly": [100,200,50],})

df_exploded = (
    df.assign(
        Quarterly = df['EarningsYearly'] / 4,
        Quarter = [['Q1', 'Q2', 'Q3', 'Q4']] * len(df)
    )
    .explode('Quarter', ignore_index=True)
)

输出效果

两种方式最终得到的结果一致,如下:

Name  Age  EarningsYearly  Quarterly Quarter
0    Bob   22              100       25.0      Q1
1    Bob   22              100       25.0      Q2
2    Bob   22              100       25.0      Q3
3    Bob   22              100       25.0      Q4
4   Mary   35              200       50.0      Q1
5   Mary   35              200       50.0      Q2
6   Mary   35              200       50.0      Q3
7   Mary   35              200       50.0      Q4
8    Amy   58               50       12.5      Q1
9    Amy   58               50       12.5      Q2
10   Amy   58               50       12.5      Q3
11   Amy   58               50       12.5      Q4

疑问说明

  • 不需要必须先创建Quarterly列再拆分,两种操作顺序都支持,可根据自己的使用场景选择。
  • explode方法需要Pandas版本≥0.25,如使用更早版本可通过repeat + merge的方式实现相同效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 22:12:02