我只是从熊猫开始,我遇到了以下问题: 我想用中的行号数据框应用()以便计算(1+0.05)^(行号),例如: (1+0.05)^0在第一行,(1+0.05)^1在第二行,(1+0.05)^2在第三行等等。。。。你知道吗
我尝试了以下操作,但get 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)
有什么想法吗?你知道吗
敬约翰
欢迎来到熊猫。熟悉矢量化函数。矢量化函数背后的基本思想是,在没有显式循环的情况下,将操作应用于数组中的每个元素。例如:
意思是“将1添加到
x
中的元素”。你知道吗类似地:
意思是“成对地将
x
中的每个元素乘以y
中的每个元素”。你知道吗实际上,矢量化函数是使用高度优化的C循环实现的,因此它们既快速又方便。你知道吗
就你而言:
foo
在我们的例子中)来访问row.name
,因为您使用的是df['Investitions2']
,它会给您一个序列。和apply
序列将遍历其值。你知道吗itertuples
或iterrows
。你知道吗相关问题 更多 >
编程相关推荐