第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對同一天求和求平均值

對同一天求和求平均值

有只小跳蛙 2021-09-11 15:11:25
我有我在 excel 中按天數(shù)排序的數(shù)據(jù),我現(xiàn)在想要做的是獲得每天的每日收益總和。這里的問題是我這些天有多個條目。所以我可能只有一個 2018-12-05 的每日返回條目,但 2018-12-06 的 5 個條目。我希望我只獲得 2018-12-06 的一個條目,其中包含累積每日回報(因此所有累積回報加在一起)和平均每日回報(因此累積回報除以當(dāng)天的條目數(shù)量。對于2018-12-06 這將除以 5)。所以我現(xiàn)在擁有的數(shù)據(jù)是這樣的:            Dates  Last.Price  Daily.Return19788  2018-11-23       75.18     -0.00119919789  2018-11-23      129.04     -0.02649019790  2018-11-26       77.84     -0.03538219791  2018-11-26      127.98      0.00821519792  2018-11-27       79.50     -0.02132619793  2018-11-27      122.68      0.04141319794  2018-11-28       80.27     -0.00968619795  2018-11-29       80.00      0.003364最終的數(shù)據(jù)框應(yīng)該是這樣的              Dates  Last.Price  Cum.Return   Average.Return19788  2018-11-23       75.18     -0.027689    -0.013844519790  2018-11-26       77.84     -0.027167    -0.013583519792  2018-11-27       79.50      0.020087     0.010043519794  2018-11-28       80.27     -0.009686    -0.00968619795  2018-11-29       80.00      0.003364     0.003364到目前為止,我有以下代碼來總結(jié)每日回報。但是它的總和不正確。而且我不知道如何實(shí)現(xiàn)平均每日回報。df = pd.read_csv('/Python Test/SP500Acquirer.csv')def sum_from_days_prior(row, df):    '''returns sum of values in row month,     from all dates in df prior to row date'''    day = pd.to_datetime(row).day    all_dates_prior = df[df.index <= row]    same_day = all_dates_prior[all_dates_prior.index.day == day]    return same_day["Daily.Return"].sum()df.set_index('Dates', inplace = True)df.index = pd.to_datetime(df.index)df["Dates"] = df.indexdf.sort_index(inplace = True)df["Day"] = df["Dates"].apply(lambda row: sum_from_days_prior (row, df))df.drop("Dates", axis = 1, inplace = True)print(df.tail(20))如前所述,此代碼未正確總結(jié)每日收益。而且我不知道如何獲得這些天的平均回報。
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個贊

我認(rèn)為您需要agg使用函數(shù)進(jìn)行聚合first,sum并且mean:


因?yàn)?columnDaily.Return是由列表中定義的多個函數(shù)聚合的,所以MultiIndex在輸出中獲取。因此有必要將其展平 - 最簡單的是map與join.


df = df.groupby('Dates').agg({'Last.Price':'first', 'Daily.Return':['mean','sum']})


print (df)

           Last.Price Daily.Return          

                first         mean       sum

Dates                                       

2018-11-23      75.18    -0.013844 -0.027689

2018-11-26      77.84    -0.013583 -0.027167

2018-11-27      79.50     0.010044  0.020087

2018-11-28      80.27    -0.009686 -0.009686

2018-11-29      80.00     0.003364  0.003364


print (df.columns)

MultiIndex(levels=[['Last.Price', 'Daily.Return'], ['first', 'mean', 'sum']],

           labels=[[0, 1, 1], [0, 1, 2]])

df.columns = df.columns.map('_'.join)

print (df)

           Last.Price_first  Daily.Return_mean  Daily.Return_sum

Dates                                                            

2018-11-23             75.18          -0.013844         -0.027689

2018-11-26             77.84          -0.013583         -0.027167

2018-11-27             79.50           0.010044          0.020087

2018-11-28             80.27          -0.009686         -0.009686

2018-11-29             80.00           0.003364          0.003364

最后一rename欄:


d = {'Last.Price_first':'Last.Price',

     'Daily.Return_sum': 'Cum.Return',

     'Daily.Return_mean': 'Average.Return'}


df = df.rename(columns=d)

print (df)

            Last.Price  Average.Return  Cum.Return

Dates                                             

2018-11-23       75.18       -0.013844   -0.027689

2018-11-26       77.84       -0.013583   -0.027167

2018-11-27       79.50        0.010044    0.020087

2018-11-28       80.27       -0.009686   -0.009686

2018-11-29       80.00        0.003364    0.003364


查看完整回答
反對 回復(fù) 2021-09-11
  • 1 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號