2016-12-05 44 views
-1

对于python而言,我一直在做一些练习,但我不明白这一行代码是如何工作的,以及它为什么起作用。PCT变更公式

它将单元格/行中的每个值都分配给起始值,为什么?

帮助非常感谢:)

PS这正是我需要的,我只是不明白它背后的工艺(IM认识的.pct_change()

df['num2'] = (df['num2'] - df['num2'][0])/df['num2'][0] * 100.0 

这里是整个代码

import pandas as pd 

dates = pd.date_range('2010-01-01', periods = 7) 
df = pd.DataFrame(dates) 

nums = {'num2' : [1,2,4,8,16,32,64]} 
df2 = pd.DataFrame(nums) 

df = df.join(df2, how = 'left') 

df.rename(columns = {0 : 'Dates'}, inplace = True) 
df = df.set_index('Dates') 

#df = df.pct_change() 
df['num2'] = (df['num2'] - df['num2'][0])/df['num2'][0] * 100.0 

df.plot() 

print (df) 

回答

1

这些值是时间相关变量的出现次数。看起来你的代码会计算增长率。具体如下

growth_rate = (what_it_is - what_it_was)/what_it_was 

东西是不是真的“干净”的是,它改变由这些增长率原单dict包含的值,这意味着是这样的信息丢失。

为了给你一个想法,就要做的是(即使接下来是不是Python syntaxically正确

([1,2,4,8,16,32,64] - 1)/1 
0
df['num2'] = df['num2'][1:]/df['num2'][:-1].values-1