python - 有没有办法在没有循环的情况下引用 Pandas 列中的先前值?
问题描述
例如,如果我想要
df = pd.DataFrame(index=range(5000)
df[‘A’]= 0
df[‘A’][0]= 1
for i in range(len(df):
if i != 0: df['A'][i] = df['A'][i-1] * 3
有没有办法在没有循环的情况下做到这一点?
解决方案
- 您的代码示例缺少右括号并且引号无效。修复了这些
- 如果我了解您要实现的目标,请将先前的值乘以 3,其中第 0 个数字是 1
- 将系列初始化为 3,然后将第零项设置为 1
- 然后简单使用cumprod
- 缩短您的系列,因为此计算将迅速导致数字溢出
df = pd.DataFrame(index=range(20))
df["A"]= 3
df.loc[0,"A"] = 1
df["A"] = df["A"].cumprod()
一种 | |
---|---|
0 | 1 |
1 | 3 |
2 | 9 |
3 | 27 |
4 | 81 |
5 | 243 |
6 | 729 |
7 | 2187 |
8 | 6561 |
9 | 19683 |
10 | 59049 |
11 | 177147 |
12 | 531441 |
13 | 1.59432e+06 |
14 | 4.78297e+06 |
15 | 1.43489e+07 |
16 | 4.30467e+07 |
17 | 1.2914e+08 |
18 | 3.8742e+08 |
19 | 1.16226e+09 |
推荐阅读
- docker-compose - docker-compose up 返回 OSError: Can not read file in context: .../data/mmaps/5332641.mmtile
- javascript - Array.map() 运行两次
- html - 我可以将表单集输入的高度与按钮匹配吗?
- java - Dyanmo 中的 AWS 导致 ConditionalCheckFailedException 的原因?
- elasticsearch - {"type":"mapper_parsing_exception","reason":"解析字段失败 [user_agent.version]
- sql - 无法计算中位数 - SQL Server 2017
- javascript - 当我使用 React Hooks 将一个布尔值从一个子组件传递给它的父组件时,出了什么问题?
- css - 如何解决由于 RoR 应用程序中的 fields_with_error 而导致布局混乱的问题?
- android - Android - adapter.NotifyDataSetChanged 问题
- java - 尝试合并类的排序数组时出现空指针异常