中级/初级Python用户。我需要弄清楚如何根据我解析成数据帧的一些股市数据来计算年度权重和加权平均数。你知道吗
我有2003-2018年的股票市场价值和日期,是这样给出的(比这个片段显示的价值要多得多):
ticker date marketcap open high low close
A 2003-03-31 8466487038.0 13.38 13.47 13.0 13.15
A 2003-06-30 11273789220.5 19.5 19.76 19.46 19.55
AA 2017-03-31 6031414196.0 34.06 34.74 33.6 34.4
AA 2017-06-30 6426297428.0 33.16 33.45 32.535 32.65
ICE 2016-03-31 29363680289.5 46.396 47.184 46.242 47.028
ICE 2016-06-30 31796255816.0 50.602 51.349 50.321 51.192
我只想为每个股票公司的市值取一个年度权重。你知道吗
即:
Weight(YEAR) = AVGTickerMarketCap(YEAR) / AllTickersMarketCap(YEAR)
由于每年的市值有不止一个值,我需要取2003年、2004年、2005年等每个股票行情的市值的平均值-因此是AVGTickerMarketCap(年份)。你知道吗
我只知道如何计算AllTickerMarketCap(年份):
df1['date'] = pd.to_datetime(df1.date)
avg_all = df1.groupby(df1.date.dt.year['marketcap'].transform('mean')
但这似乎只取第一个“A”,并将“A”的相同平均值应用于每年,而不考虑其股票代码。你知道吗
问题出在哪里?我该如何找到AVGTickerMarketCap(年份)?你知道吗
获取包含年平均值的列的正确语法如下
类似地,要获得每年的平均值和运行的股票代码:
如果您不希望它成为一个可以映射回数据框的列,而只希望为每年的值/股票代码创建一个新的数据框,那么您可以用
.mean()
子输出.transform('mean')
。你知道吗在您的示例数据中,每个ticker都有一个唯一的年份,该年份对于该ticker的所有值都是相同的,并且不同于所有其他ticker值,因此按年份分组和按年份分组以及ticker是等效的操作。你知道吗
相关问题 更多 >
编程相关推荐