我有一个很大的数据框,其中包含给定日期的1亿个股票收益率观测值,以及每只股票的标识符,我的问题是,对于某些股票,在某些日期的收益率列中存在缺失值,举一个小例子,数据框如下所示:
| 识别号|日期|返回|
| - ------|- ------|- ------|
| 小行星|一九七〇年一月一日|0.043|
| 小行星|一九七〇年一月二日|0.023|
| 小行星|一九七〇年一月三日|-0.010|
| 小行星|一九七〇年一月一日|0.010分|
| 小行星|一九七〇年一月二日|钠氮|
| 小行星|一九七〇年一月三日|-0.034|
| 小行星10003|一九七〇年一月一日|零零四十人|
| 小行星10003|一九七〇年一月二日|-0.041|
| 小行星10003|一九七〇年一月三日|0.009|
我希望删除所有包含一个或多个缺失值的股票,我这样做:
df = df[df['RET'].notna().groupby('ID').transform('all')]
从上面的数据框示例中,这将生成一个分组数据框,其中股票在回报列中没有缺失值:
| 识别号|日期|返回|
| - ------|- ------|- ------|
| 小行星|一九七〇年一月一日|0.043|
| | 一九七〇年一月二日|0.023|
| | 一九七〇年一月三日|-0.010|
| 小行星10003|一九七〇年一月一日|零零四十人|
| | 一九七〇年一月二日|-0.041|
| | 一九七〇年一月三日|0.009|
但是,我需要将数据框重新转换为未分组状态。你们中有人有解决方案吗?为了指定,我希望数据框如下所示:
| 识别号|日期|返回|
| - ------|- ------|- ------|
| 小行星|一九七〇年一月一日|0.043|
| 小行星|一九七〇年一月二日|0.023|
| 小行星|一九七〇年一月三日|-0.010|
| 小行星10003|一九七〇年一月一日|零零四十人|
| 小行星10003|一九七〇年一月二日|-0.041|
| 小行星10003|一九七〇年一月三日|0.009|
提前感谢您提供任何可能的解决方案。
我已经尝试过使用. unstack()和. reset_index(),但没有任何效果
1条答案
按热度按时间prdp8dxp1#
不需要分组,简单的布尔索引+
.isin()
就足够了:图纸: