如何在Python Pandas中创建每组数值相同的列?[重复]

问题描述 投票:0回答:1

我目前有一个Pandas Dataframe,在我的第一列有很多股票行情。他们是时间序列,所以每个股票代码出现不止一次。在我的第二列,我有一个CUSIP代码,但这个代码只出现在行的股票出现第一次,所有接下来的行不包含这个CUSIP代码。我希望在所有匹配同一股票的列中都有相同的CUSIP代码。这是我的数据框的样子,我希望所有的NaN都填入正确的CUSIP,这样你就会得到下面的数据框。

MSFT.OQ     594918104   FY2019  55252000000 United States   USA 1
MSFT.OQ     NaN         FY2018  44501000000 United States   USA 1
MSFT.OQ     NaN         FY2017  42730000000 United States   USA 1
MSFT.OQ     NaN         FY2016  25145000000 United States   USA 1
EFT_pa^E08  449515402   FY2001  6642000     United States   USA 1
EFT_pa^E08  NaN         FY2000  12161000    United States   USA 1
EFT_pa^E08  NaN         FY1999


MSFT.OQ     594918104   FY2019  55252000000 United States   USA 1
MSFT.OQ     594918104   FY2018  44501000000 United States   USA 1
MSFT.OQ     594918104   FY2017  42730000000 United States   USA 1
MSFT.OQ     594918104   FY2016  25145000000 United States   USA 1
EFT_pa^E08  449515402   FY2001  6642000     United States   USA 1
EFT_pa^E08  449515402   FY2000  12161000    United States   USA 1
EFT_pa^E08  449515402   FY1999      
python pandas pandas-groupby
1个回答
0
投票

使用 ffill - 使用指定的正向方法填充NANaN值。

>>> df.ffill()
            0            1       2             3       4       5    6    7
0     MSFT.OQ  594918104.0  FY2019  5.525200e+10  United  States  USA  1.0
1     MSFT.OQ  594918104.0  FY2018  4.450100e+10  United  States  USA  1.0
2     MSFT.OQ  594918104.0  FY2017  4.273000e+10  United  States  USA  1.0
3     MSFT.OQ  594918104.0  FY2016  2.514500e+10  United  States  USA  1.0
4  EFT_pa^E08  449515402.0  FY2001  6.642000e+06  United  States  USA  1.0
5  EFT_pa^E08  449515402.0  FY2000  1.216100e+07  United  States  USA  1.0
6  EFT_pa^E08  449515402.0  FY1999  1.216100e+07  United  States  USA  1.0

© www.soinside.com 2019 - 2024. All rights reserved.