代码之家  ›  专栏  ›  技术社区  ›  Jan.V

大熊猫:由外国金融机构分组不适用填写顺序正确

  •  0
  • Jan.V  · 技术社区  · 6 年前

    我正面临一个由外国金融机构组成的集团的问题。似乎没有按正确的顺序应用前向填充 这是我的起始数据

       group       date  stage_2
    0      A 2014-01-01      NaN
    1      A 2014-01-03      NaN
    2      A 2014-01-04      NaN
    3      A 2014-01-05      1.0
    4      B 2014-01-02      NaN
    5      B 2014-01-06      NaN
    6      B 2014-01-10      NaN
    7      C 2014-01-03      1.0
    8      C 2014-01-05      3.0
    9      C 2014-01-08      NaN
    10     C 2014-01-09      NaN
    11     C 2014-01-10      NaN
    12     C 2014-01-11      NaN
    13     D 2014-01-01      NaN
    14     D 2014-01-03      NaN
    15     D 2014-01-04      NaN
    16     E 2014-01-04      1.0
    17     E 2014-01-06      3.0
    18     E 2014-01-07      4.0
    19     E 2014-01-08      NaN
    20     E 2014-01-09      NaN
    21     E 2014-01-10      NaN
    22     F 2014-01-08      NaN
    

    在应用了ffill方法之后,这就是我得到的

    df['stage_2']=df.groupby('group')['stage_2'].ffill())

    我希望指数9到12和21的数值不同

       group       date  stage_2
    0      A 2014-01-01      NaN
    1      A 2014-01-03      NaN
    2      A 2014-01-04      NaN
    3      A 2014-01-05      1.0
    4      B 2014-01-02      NaN
    5      B 2014-01-06      NaN
    6      B 2014-01-10      NaN
    7      C 2014-01-03      1.0
    8      C 2014-01-05      3.0
    9      C 2014-01-08      1.0
    10     C 2014-01-09      NaN
    11     C 2014-01-10      NaN
    12     C 2014-01-11      NaN
    13     D 2014-01-01      NaN
    14     D 2014-01-03      NaN
    15     D 2014-01-04      NaN
    16     E 2014-01-04      1.0
    17     E 2014-01-06      3.0
    18     E 2014-01-07      4.0
    19     E 2014-01-08      4.0
    20     E 2014-01-09      4.0
    21     E 2014-01-10      NaN
    22     F 2014-01-08      NaN
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ayorgo    6 年前

    我唯一能复制的方法是输入非ASCII字符,例如西里尔字符 С Е 进入 group 分别位于索引9-12和21处的列。

    编辑

    好吧,很可能你在用熊猫 v0.23.0 有一个 bug (在未来版本中已修复,至少在 v0.23.4 这使得 .ffill() 给出你发布的准确输出。所以请 upgrade your pandas .