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

如何生成指定结构的Pandas等比数列DataFrame及单行代码实现?

构造指定结构的Pandas DataFrame

需求说明

  • 生成从索引1开始的等比数列,索引0为独立值var1
  • 期望得到的DataFrame结构:
os
0  10.000000 <- var1
1  15.000000 <- var2
2  16.500000 <- var2*r
3  18.150000 <- var2*r*r
4  19.965000
5  21.961500
6  24.157650
7  26.573415

现有代码问题

你当前的代码存在两个问题:

  1. 运算符优先级错误:var2 * r ** n-1会被解析为(var2 * r**n) - 1,导致所有值都被减1,偏离预期
  2. 未将var1插入到索引0的位置

当前代码:

v = 7
n = np.arange(v + 1)

var1 = 10
var2 = 15
r = 1.1

df = pd.DataFrame(
    {
        "os": var2 * r ** n-1
    }
)

print(df)

解决方案

方法一:分步构造

先生成从var2起始的等比数列,再将var1插入到索引0位置:

import pandas as pd
import numpy as np

v = 7
var1 = 10
var2 = 15
r = 1.1

# 生成7个值的等比数列(对应索引1-7)
geo_seq = var2 * r ** np.arange(v)
# 拼接var1和等比数列,构造DataFrame
df = pd.DataFrame({'os': [var1] + list(geo_seq)})
print(df)

方法二:单行代码实现

利用np.concatenate合并数组,直接完成构造:

import pandas as pd
import numpy as np

var1, var2, r, v = 10, 15, 1.1, 7
df = pd.DataFrame({'os': np.concatenate([[var1], var2 * r ** np.arange(v)])})
print(df)

验证输出

运行上述代码后,会得到符合预期的结果:

os
0  10.000000
1  15.000000
2  16.500000
3  18.150000
4  19.965000
5  21.961500
6  24.157650
7  26.573415

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:35:19