如何从熊猫中的数据框的第一个和最后一个值中获取百分比变化



我想知道如何从以下数据框架的第一个和最后一个值中从列余额,导出和导入的列获得pct_change?另外,如果您可以说明如何从两个特定日期获得pct_change

balance       date  exports  imports
0   -45053 2008-01-01   421443   466496
1   -33453 2009-01-01   399649   433102
2   -41168 2010-01-01   445748   486916
3   -25171 2011-01-01   498862   524033
4   -33364 2012-01-01   501055   534419
5   -35367 2013-01-01   519913   555280
6   -36831 2014-01-01   518925   555756
7   -32370 2015-01-01   517161   549531
8   -43013 2016-01-01   547473   590486

iiuic,使用 iloc进行第一个.iloc[0],最后.iloc[-1]获取PCT_CHANGE 100*(last/first-1)

In [244]: cols = ['balance', 'exports', 'imports']
In [245]: 100*(df[cols].iloc[-1]/df[cols].iloc[0]-1)
Out[245]:
balance    -4.528000
exports    29.904400
imports    26.579006
dtype: float64

首先,如果要直接使用日期,则必须将索引设置为日期。然后一切都很容易进行。

import pandas as pd
data = [[-45053, "2008-01-01",   421443,   466496],
        [-33453, "2009-01-01",   399649,   433102],
        [-41168, "2010-01-01",   445748,   486916],
        [-25171, "2011-01-01",   498862,   524033],
        [-33364, "2012-01-01",   501055,   534419],
        [-35367, "2013-01-01",   519913,   555280],
        [-36831, "2014-01-01",   518925,   555756],
        [-32370, "2015-01-01",   517161,   549531],
        [-43013, "2016-01-01",   547473,   590486]]
columns = ["balance","date","exports","imports"]
df=pd.DataFrame(data,columns=columns).set_index("date")
print(df.loc["2009-01-01"]/df.loc["2008-01-01"]-1)
# result
# balance   -0.257475
# exports   -0.051713
# imports   -0.071585
# dtype: float64

最新更新