Python Pandas:在Apply中使用行号

面糊67

我只是以Pandas开头,所以遇到了以下问题:我想在df.apply()中使用行号,以便它计算(1 + 0.05)^(row_number),例如:(1 + 0.05)^第一行为0,第二行为(1 + 0.05)^ 1,第三行为(1 + 0.05)^ 2 ...

我尝试了以下操作,但得到AttributeError:'int'对象没有属性'name'

import pandas as pd

considered_period_years = 60
start_year = 2019
TDE = 0.02
year = list(range(start_year,start_year+considered_period_years))

df = pd.DataFrame(year, columns = ['Year'])
df.insert(0, 'Year Number', range(0,60), allow_duplicates = False)
df.insert(2, 'Investition', 0, allow_duplicates = False)

df['Investition2'] = df['Investition'].apply(lambda x: x*(1+TDE)**x.name)

有任何想法吗 ?

问候约翰

代码不同

欢迎来到熊猫。熟悉向量化函数。向量化函数背后的基本思想是,您可以将操作应用于数组中的每个元素而无需显式循环。例如:

x + 1

表示“在元素中加1 x”。

类似地:

x * y

意思是“将每个元素乘以成对的x每个元素y”。

深入而言,矢量化功能是使用高度优化的C循环实现的,因此既快速又方便。

在您的情况下:

df['Investition2'] = (1+TDE)**df.index

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章