Calculadora do VPL no Python
import pandas as pd
def PV01(lista, taxa):
"Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
#Convertendo a lista em dataframe
df = pd.DataFrame(lista, index = ["1", "2", "3", "4", "5"],
columns = ["Ano", "Fluxo de Caixa"])
print(df)
#Calculando o valor presente
df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
print(df)
#Soma dos valores presentes
SomaPV = df["VP"].sum()
print("\nTaxa de Juros:", taxa01, 'Investimento:',investimento)
print("\nSoma dos Valores Presente: ", round(SomaPV,2))
VPL = SomaPV - investimento
print("\nValor Presente Líquido: ", round(VPL,2))
#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.
lista01 = [[1, 100], [2, 100], [3, 100], [4, 100], [5, 100]]
#Definindo a taxa de juros e investimento
taxa01 = float(input('Qual a taxa de juros?'))/100
investimento = float(input('Qual o valor do Investimento?'))
PV01(lista01,taxa01)
Quando os Fluxos de Caixa são diferentes (a função VP do Excel NÃO funciona aqui)/
import pandas as pd
def PV02(lista, taxa):
"Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
#Convertendo a lista em dataframe
df = pd.DataFrame(lista, index = ["1", "2", "3", "4", "5"],
columns = ["Ano", "Fluxo de Caixa"])
print(df)
#Calculando o valor presente
df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
print(df)
#Soma dos valores presentes
SomaPV = df["VP"].sum()
print("Taxa de Juros:", taxa02, 'Investimento:', investimento)
print("Soma dos Valores Presente: ", round(SomaPV))
VPL = SomaPV - investimento
print("Valor Presente Líquido: ",round(VPL))
#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.
FC1 = float(input('Dê o valor do FC1:'))
FC2 = float(input('Dê o valor do FC2:'))
FC3 = float(input('Dê o valor do FC3:'))
FC4 = float(input('Dê o valor do FC4:'))
FC5 = float(input('Dê o valor do FC5:'))
lista02 = [[1, FC1], [2, FC2], [3, FC3], [4, FC4], [5, FC5]]
#Definindo a taxa de juros e investimento
numFC = 1
taxa02 = float(input('Qual a taxa de juros?'))/100
investimento = float(input('Qual o valor do Investimento?'))
PV02(lista02,taxa02)

Aqui vamos calcular o VPL para um fluxo de caixa negativo ou nulo no momento ZERO (hoje) como investimento
def PV03(lista, taxa):
"Argumentos: (lista (lista01) de listas com uma data (Ano) e o Fluxo de Caixa, mais a taxa de juros)"
#Convertendo a lista em dataframe
df = pd.DataFrame(lista, index = ["0", "1", "2", "3", "4", "5"],
columns = ["Ano", "Fluxo de Caixa"])
print(df)
#Calculando o valor presente
df["VP"] = (df["Fluxo de Caixa"])/((1+taxa)**df["Ano"])
print(df)
#Soma dos valores presentes
SomaPV = df["VP"].sum()
print("\nTaxa de Juros:", taxa03)
print("\nSoma dos Valores Presente: ", round(SomaPV,2))
VPL = SomaPV
print("\nValor Presente Líquido: ",round(VPL,2))
#Criando uma lista com os dados.
#A lista deve ser composta por sublistas contendo a data e o fluxode caixa na data.
FC0 = float(input('Dê o valor do FC0 ou investimento:'))
FC1 = float(input('Dê o valor do FC1:'))
FC2 = float(input('Dê o valor do FC2:'))
FC3 = float(input('Dê o valor do FC3:'))
FC4 = float(input('Dê o valor do FC4:'))
FC5 = float(input('Dê o valor do FC5:'))
lista03 = [[0, FC0], [1, FC1], [2, FC2], [3, FC3], [4, FC4], [5, FC5]]
#Definindo a taxa de juros e investimento
numFC = 1
taxa03 = float(input('Qual a taxa de juros? '))/100
PV03(lista03,taxa03)