根据条件的变化百分比

时间:2018-08-27 17:03:48

标签: python pandas

enter image description here正在尝试计算从星期一到星期五的百分比变化。还是在星期二的某个时候开始,如图所示

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

请帮助谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用Regex pattern = new Regex(@"(?<num>\d{3})card\.json"); Match match = pattern.Match(qnaResult.ToLower()); if (match.Success) { string num = pattern.Groups["num"].Value; // Do something with num } else { // No match } 计算整个Price列的percent_change,然后找到您感兴趣的地方:

设置:

pct_change

代码:

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] }

df = pd.DataFrame(Data)

哪个返回您的值作为系列:

df['percent_change'] = df.Price.pct_change()

df.loc[(df['Day of Week'] == 'Friday') & (df['Day of Week'].shift() == 'Monday'), 'percent_change']

答案 1 :(得分:0)

enter image description here

我能够计算出星期一至星期五的百分比变化,但是我遇到的问题是星期二的某个时候开始。