python中change的用法?
當前元素與先前元素之間的百分比變化。默認情況下,計算與前一行的百分比變化。這在比較元素時間序列中的變化百分比時很有用。
參數:
periods:int, 默認為 1形成百分比變化所需的時間。
fill_method:str, 默認為 ‘pad’在計算百分比變化之前如何處理資產凈值。
limit:int, 默認為 None停止前要填充的連續NA數。
freq:DateOffset, timedelta, 或 str, 可選參數從時間序列API開始使用的增量(例如‘M’或BDay())。
**kwargs:其他關鍵字參數傳遞到DataFrame.shift或者Series.shift。
返回值:
chg:Series 或 DataFrame與調用對象的類型相同。
例子:
Series
>>> s = pd.Series([90, 91, 85])
>>> s
0 90
1 91
2 85
dtype:int64
>>> s.pct_change()
0 NaN
1 0.011111
2 -0.065934
dtype:float64
>>> s.pct_change(periods=2)
0 NaN
1 NaN
2 -0.055556
dtype:float64
看到 Series 中的百分比變化,其中用最后一個有效觀察值填充到下一個有效觀察值來填充NA。
>>> s = pd.Series([90, 91, None, 85])
>>> s
0 90.0
1 91.0
2 NaN
3 85.0
dtype:float64
>>> s.pct_change(fill_method='ffill')
0 NaN
1 0.011111
2 0.000000
3 -0.065934
dtype:float64
DataFrame
從1980-01-01到1980-03-01的法郎,德國馬克和意大利里拉的百分比變化。
>>> df = pd.DataFrame({
... 'FR': [4.0405, 4.0963, 4.3149],
... 'GR': [1.7246, 1.7482, 1.8519],
... 'IT': [804.74, 810.01, 860.13]},
... index=['1980-01-01', '1980-02-01', '1980-03-01'])
>>> df
FR GR IT
1980-01-01 4.0405 1.7246 804.74
1980-02-01 4.0963 1.7482 810.01
1980-03-01 4.3149 1.8519 860.13
>>> df.pct_change()
FR GR IT
1980-01-01 NaN NaN NaN
1980-02-01 0.013810 0.013684 0.006549
1980-03-01 0.053365 0.059318 0.061876
GOOG和APPL庫存量變化的百分比。顯示計算列之間的百分比變化。
>>> df = pd.DataFrame({
... '2016': [1769950, 30586265],
... '2015': [1500923, 40912316],
... '2014': [1371819, 41403351]},
... index=['GOOG', 'APPL'])
>>> df
2016 2015 2014
GOOG 1769950 1500923 1371819
APPL 30586265 40912316 41403351
>>> df.pct_change(axis='columns')
2016 2015 2014
GOOG NaN -0.151997 -0.086016
APPL NaN 0.337604 0.012002