Python - 更改数据框订单值

时间:2017-12-01 03:24:35

标签: python dataframe

我正在尝试更改数据帧打印输出,以便它开始将第一个数据帧条目编号为40而不是0.

import pandas as pd
import numpy as np
import glob
import datetime as dt
import math

principle = 50000 # Amount initially invested
rate_of_return = .076 # Return on investment or the interest rate
years = 26 # Assuming starting at age 40 and end at age 65

roi_list = []
for i in range(years):
    roi_list.append(principle)  
    principle = principle*(math.exp(rate_of_return)) 

df = pd.DataFrame(roi_list) # Creates a dataframe containing the roi_list values
print(df)

4 个答案:

答案 0 :(得分:1)

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)使用index参数来提供索引信息。

  

索引索引或类似数组

     

用于结果框架的索引。如果没有索引信息部分输入数据且没有提供索引,则默认为np.arange(n)

所以这将完成这项工作:

df = pd.DataFrame(roi_list, index=np.arange(40, 40 + years))

答案 1 :(得分:1)

由于您使用的是pandas,因此您可能需要考虑矢量化解决方案。这就是大熊猫的设计目标。

years = np.arange(26)
r = .076  # 7.6% compounded annual growth rate
principle = 50000

s = pd.Series(principle * ((1+r)**years),
              index=np.add(years, 40))

print(s.head())
40    50000.000
41    53800.000
42    57888.800
43    62288.349
44    67022.263
dtype: float64

操作实例:

  • years = np.arange(26)创建一个NumPy数组,从0开始,到25结束。
  • r是我们的年化增长率。您在评论中说您已经假定指数增长率,但事实并非如此。您目前正在使用 e 的年化增长率提高到.076(math.exp(r)),年化率为7.89%。这是一个不变的增长率,而不是指数增长率。
  • 这里的重要术语是principle * ((1+r)**years)。只需花费(1+r)**years即可显示每年复合增长1美元,增幅为7.6%。乘以(整个数组)您的开始原则可以获得该主体的假设增长。

答案 2 :(得分:0)

df = pd.DataFrame(roi_list,index=range(40,40+years),columns=['Principle'])

答案 3 :(得分:0)

import pandas as pd
import numpy as np
import glob
import datetime as dt
import math

principle = 50000 # Amount initially invested
rate_of_return = .076 # Return on investment or the interest rate
years = 26 # Assuming starting at age 40 and end at age 65

roi_list = []



for i in range(years):
    roi_list.append(principle)  
    principle = principle*(math.exp(rate_of_return)) 

yearlist = []
for i in range(years):
    yearlist.append(i + 40)

dates = pd.DataFrame(yearlist)    

df = pd.DataFrame(roi_list, index = dates) # Creates a dataframe containing the roi_list values
print(df)

这是你想要的吗?