如何比较上一行的%差异值



使用Pandas 解决问题

我有这个数据集这是一个问题:对于用户选择的公共交通类型,显示平均出行距离比前一年下降至少5%的年份和平均出行距离。

Year  MRT  LRT  Bus  Taxi
0   2004  11.5  0.0  5.2   8.5
1   2005  11.5  0.0  5.4   8.8
2   2006  11.3  0.0  5.3   9.1
3   2007  11.2  0.0  5.3   9.7
4   2008  11.2  2.1  5.3   9.0
5   2009  10.8  2.1  5.1   9.0
6   2010  10.3  2.1  4.8   9.3
7   2011  10.0  2.0  4.5   9.6
8   2012   9.6  1.0  4.4   9.7
9   2013   9.5  2.0  4.3   9.8
10  2014   9.2  2.0  4.3  10.0

例如。如果我选择";总线":为了更容易地可视化该数据列:

Year  Bus
0   2004  5.2
1   2005  5.4
2   2006  5.3
3   2007  5.3
4   2008  5.3
5   2009  5.1
6   2010  4.8
7   2011  4.5
8   2012  4.4
9   2013  4.3
10  2014  4.3

如果下降超过5%,它将比较2005年的数据和2004年的数据,如果是,打印出来,如果不是,继续扫描。

预期输出:";2010年的数据为4.8,与去年相比下降了5%以上前一年";(注:5.1*0.95=4.85(

"2011年的数据为4.5,与前一年相比下降了5%以上;(注:4.8*0.95=4.56(

我在想一个for循环,但我真的不确定如何使用它来比较5%的减量。

您可以添加一列(按传输方式(来获取您的条件值:

df['hasDecreasedMarkedly'] = (df['Bus'] - df['Bus'].shift(1))/df['Bus'] >= 0.05

您可以使用pandas.pct_change((.

import pandas as pd
df = pd.DataFrame({'Year': {0: 2004,
1: 2005,
2: 2006,
3: 2007,
4: 2008,
5: 2009,
6: 2010,
7: 2011,
8: 2012,
9: 2013,
10: 2014},
'Bus': {0: 5.2,
1: 5.4,
2: 5.3,
3: 5.3,
4: 5.3,
5: 5.1,
6: 4.8,
7: 4.5,
8: 4.4,
9: 4.3,
10: 4.3}})
df['pct_change']= df['Bus'].pct_change()
df['5 pct change'] = df['pct_change'] < -0.05

输出:

Year        Bus    pct_change       5 pct change
0   2004    5.2    NaN              False
1   2005    5.4    0.038462         False
2   2006    5.3   -0.018519         False
3   2007    5.3    0.000000         False
4   2008    5.3    0.000000         False
5   2009    5.1   -0.037736         False
6   2010    4.8   -0.058824         True
7   2011    4.5   -0.062500         True
8   2012    4.4   -0.022222         False
9   2013    4.3   -0.022727         False
10  2014    4.3    0.000000         False

要打印出您的请求;如果它已经减少了5%以上,如果是打印出来,如果不是,继续扫描";你可以做到。

(print(df.loc[df['5 pct change'] == True]))

哪个打印这个:

Year  Bus    pct_change        5 pct change
6  2010  4.8   -0.058824          True
7  2011  4.5   -0.062500          True

相关内容

  • 没有找到相关文章

最新更新