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

如何为DataFrame生成每行商值的新列B?

pandas生成相邻行商值列的解决方案

需求说明

现有如下结构的DataFrame:

A
0  2
1  6
2  12

需生成新列B,其中每行值为下一行A列数值 ÷ 当前行A列数值,最后一行无后续行,用-填充,预期结果:

A  B
0   2  3
1   6  2
2  12  -

实现代码

import pandas as pd

# 构造示例DataFrame
df = pd.DataFrame({'A': [2, 6, 12]})

# 计算B列:下一行A与当前行A的商,最后一行填充'-'
# 若需要整数结果,使用astype('Int64')支持缺失值的整数类型
df['B'] = (df['A'].shift(-1) / df['A']).astype('Int64').fillna('-')

# 查看结果
print(df)

代码说明

  • df['A'].shift(-1):将A列元素向上偏移一行,当前行可获取下一行的A值,最后一行因无后续行返回NaN
  • 除法运算后,通过astype('Int64')将浮点商转为整数(该类型支持缺失值,避免普通int报错)
  • 用fillna('-')将最后一行的NaN替换为指定符号-

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:11:05