【发布时间】:2018-09-11 14:21:34
【问题描述】:
数据框比我正在使用的要简单一些,但我正在尝试编写一个函数来查看我们拥有资金的三个不同预算。无论预算如何,我们的每日支出率都是一致的,但首先要从第一个预算中提取,第二个是第二个,等等。我已经开始编写函数,但已经遇到问题而没有涉及更大的复杂性.我尝试创建的函数将通过花费的任何内容来减少相应的预算,并在“花费”列中返回相应的值。如果要花费的金额超过预算,它将从第二个预算(然后是第三个)中提取,分别递减。
import pandas as pd
import matplotlib.pyplot as plt
ID = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Budget_1 = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800, 1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
Budget_2 = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800, 1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
Budget_3 = [1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800, 1000, 1200, 1300, 100 ,500, 0, 800, 950, 4321, 800]
FY = [2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019]
Days = [250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250]
spend = [2.5, 3.0, 4.0, 5.0, 4.0, 10.0, 2.5, 2.0, 4.0, 2.5, 2.5, 3.0, 4.0, 5.0, 4.0, 10.0, 2.5, 2.0, 4.0, 2.5]
Spent_1 = ''
Spent_2 = ''
Spent_3 = ''
Total_Spent = ''
d = {'ID': ID, 'Budget 1': Budget_1, 'Budget 2': Budget_2, 'Budget 3': Budget_3, 'Fiscal Year': FY, 'Days': Days, 'Spent 1': Spent_1, 'Spent 2': Spent_2, 'Spent 3': Spent_3, 'Total Spent': Total_Spent, 'Spend Rate': spend}
df = pd.DataFrame(d)
print(df)
df = df.sort_values(['Fiscal Year', 'ID'], ascending = True)
def funded_calc(spendrate):
spent1 = spendrate*df['Days']
df['Spent 1'] = df['Spent 1'] - spent1
return spent1
df['Spent'] = df['Spend Rate'].apply(funded_calc)
print(df)
【问题讨论】:
-
那么你的问题是什么?有点不清楚您的问题出在哪里。
-
您希望从这些输入数据中得到什么结果?
标签: python python-3.x pandas