python的新手,我一直在做一些练习,我不明白这行代码是如何工作的,为什么会有效。
它取一个单元格/行中的每个值并将其除以起始值,为什么?
非常感谢:)
PS这正是我需要的,我只是不理解它背后的过程(我知道.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)
答案 0 :(得分:1)
这些值是时间相关变量的出现。您的代码似乎会计算增长率。如下
growth_rate = (what_it_is - what_it_was)/what_it_was
某些不是真的"清洁"是因为它改变了这些增长率所包含的原始dict
值,这意味着这样做会导致信息丢失。
为了给你一个想法,做了什么(即使以下内容不是python-语法正确)
([1,2,4,8,16,32,64] - 1)/1
答案 1 :(得分:0)
df['num2'] = df['num2'][1:]/df['num2'][:-1].values-1