Python 基于条件的百分比变化

Python 基于条件的百分比变化,python,pandas,Python,Pandas,我想做的是计算从周一到周五的百分比变化。另外,本周的某个时间从周二开始,如图所示 Data = { ‘Date’ : [‘8/24/2018’, ‘8/23/2018’, ‘8/22/2018’, ‘8/21/2018’, ‘8/20/2018’, ‘8/17/2018’, ‘8/16/2018’], “Day of Week’ : [ ‘Friday’, ‘Thursday’, ‘Wednesday’, ‘Tuesday’,’Monday’, ‘Friday’, ‘Thursday’], ‘P

我想做的是计算从周一到周五的百分比变化。另外,本周的某个时间从周二开始,如图所示

Data = { ‘Date’ : [‘8/24/2018’, ‘8/23/2018’, ‘8/22/2018’, ‘8/21/2018’, ‘8/20/2018’, ‘8/17/2018’, ‘8/16/2018’], “Day of Week’ : [ ‘Friday’, ‘Thursday’, ‘Wednesday’, ‘Tuesday’,’Monday’, ‘Friday’, ‘Thursday’], ‘Price’ : [120.3, 121.2, 119.98,120.03,123.6,120.5,122.5] }

def week_pct_chng (row): 
       If row[‘Day of Week’] == “Friday” and row[‘Day of Week’].shift(1) == ‘Monday’:
              Return ( the percentage of Monday to Friday) 
       Else: 
              Return(‘NaN’)
我不知道报税表上写了什么。 我的答案应该是-.026


请帮助,谢谢

您可以使用
pct\u change
计算整个
Price
列的百分比变化,然后找到您感兴趣的地方:

设置: 代码: 它以序列形式返回值:

5   -0.025081
Name: percent_change, dtype: float64


我能够计算从周一到周五的百分比变化,但是我的问题是,一周的某个时间从周二开始

这是因为数据量小。当我在一个1000多个值的大数据上尝试它时,有多个“星期一”和“星期五”,我得到:“Series([],Name:Percent Change,dtype:float64”
df['percent_change'] = df.Price.pct_change()

df.loc[(df['Day of Week'] == 'Friday') & (df['Day of Week'].shift() == 'Monday'), 'percent_change']
5   -0.025081
Name: percent_change, dtype: float64