当前元素与原本元素之间的百分比变化。
默认情况下,算出与前一行的百分比变化。这在比较比较元素时间序列中的变化百分比时很用处不大。
参数:
periods:int,默认为1自然形成百分比变化所需的时间。
fill_method:str,默认为‘pad在计算百分比变化之前应该怎么处理资产净值。
limit:int,默认为none停止前要再填充的尝试na数。
freq:dateoffset,timedelta,或str,可选参数从时间序列api就开始使用的增量(的或‘m或bday())。
**kwargs:其他关键字参数传递到或则。
返回值:
chg:series或dataframe与内部函数对象的类型完全相同。
例子:
series
s([90,91,85])
s
090
191
285
dtype:int64
s.pct_change()
0nan
10.011111
2-0.065934
dtype:float64
s.pct_change(periods2)
0nan
1nan
2-0.055556
dtype:float64
注意到series中的百分比变化,其中用那一个有效观察值填充后到下一个比较有效观察值来填充。
s([90,91,none,85])
s
090.0
191.0
2nan
385.0
dtype:float64
s.pct_change(fill_methodffill)
0nan
10.011111
20.000000
3-0.065934
dtype:float64
dataframe
从1980-01-01到1980-03-01的法郎,德国马克和意大利里拉的百分比变化。
df({
[4.0405,4.0963,4.3149],
[1.7246,1.7482,1.8519],
[804.74,810.01,860.13]},
[1980-01-01,1980-02-01,1980-03-01])
df
frgrit
1980-01-014.04051.7246804.74
1980-02-014.09631.7482810.01
1980-03-014.31491.8519860.13
df.pct_change()
frgrit
1980-01-01nannannan
1980-02-010.0138100.0136840.006549
1980-03-010.0533650.0593180.061876
goog和appl库存量变化的百分比。会显示可以计算列之间的百分比变化。
df({
...2016:[1769950,30586265],
...2015:[1500923,40912316],
...2014:[1371819,41403351]},
[goog,appl])
df
201620152014
goog176995015009231371819
appl305862654091231641403351
df.pct_change(axiscolumns)
201620152014
goognan-0.151997-0.086016
applnan0.3376040.012002
我用pythontxt一次性处理过1.7亿条数据,压力不算尤其大,是可以接受。
有几点要注意一点:
1、最好别用python写循环,1.7亿的循环回到你电脑没电。
2、多用pandas和numpy,用他们自带的查找方法。
3、如果不是内存太少,时要用iterator,当然了这时分线程意义也不太大了,只不过你的瓶颈是io。