数据是这样的
PERMNO是不同股票的股票代码。我想提取每个月最后一天每只股票的RET值,并将其复制到该月的其他日期。假设PERMNO 10006 30.06.1928的RET = 0.01,那么从01.06.1928到30.06.1928的所有RET值也应该显示0.01。所有日期和所有股票都要这样做。我尝试过组比、循环和数据范围,但是遇到了问题。
任何帮助都非常感谢!
首先转换为日期时间和排序,然后在GroupBy.transform
中使用GroupBy.last
:
df['Date'] = pd.to_datetime(df['Date'])
df = df.sort_values(['PERMNO','Date'])
df['new'] = df.groupby(['PERMNO', df['date'].dt.year, df['date'].dt.month])['RET'].transform('last')