[英]Pandas groupby then assign
我有一个带有列的长格式数据框:日期、股票代码、mcap、rank_mcap。 mcap 列是“市值”并衡量某只股票的规模,而 mcap_rank 只是它的排名版本(其中 1 是最大的市值)。
我想创建市值排名前 10 的加权资产(例如 S&P10)。 在 RI 中执行此操作
df %>%
filter(day(date) == 1, rank_mcap < 11) %>%
group_by(date) %>%
mutate(weight = mcap / sum(mcap)) %>%
ungroup() %>%
我在熊猫做什么? 我收到以下错误
AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“assign”,请尝试使用“apply”方法
当我使用类似 R 方法的类似方法时,即在 python 中执行以下操作:
df.\
query('included == True & date.dt.day == 1'). \
groupby('date').\
assign(w=df.mcap / df.mcap.sum())
我研究了http://pandas.pydata.org/pandas-docs/stable/comparison_with_r.html并没有得出结论。
Pandas 如何在 R 中实现 Mutate
df.query('included == True & date.dt.day == 1').\
assign(weight = lambda x : x.groupby('date',group_keys=False).
apply(lambda y: y.mcap / y.mcap.sum()))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.