代码之家  ›  专栏  ›  技术社区  ›  Pepin Peng

当对列应用滚动意味时如何填充第一个N/A单元-python

  •  1
  • Pepin Peng  · 技术社区  · 6 年前

    我需要对pic1 s3中显示的列应用滚动平均值,在应用滚动平均值并设置windows=5之后,我得到了正确的答案,但前4行为空,如pic2 sa3中显示的那样。

    我想用pic1 s3中所有数据的平均值填充pic2 sa3中的前4个空单元格,直到当前行,如pic3 a3中所示。

    除了滚动平均法,我怎么能用一个简单的函数呢?

    .

    我想用pic1 s3中所有数据的平均值填充pic2 sa3中的前4个空单元格,直到当前行,如pic3 a3所示。

    除了滚动平均法,我怎么能用一个简单的函数呢? pic1

    pic2

    3 回复  |  直到 6 年前
        1
  •  2
  •   jezrael    6 年前

    我想需要参数 min_periods=1 在里面 rolling 以下内容:

    最小周期:int,默认无

    窗口中需要有值的最小观察次数(否则结果为na)。对于由偏移量指定的窗口,这将默认为1。

    df = df.rolling(5, min_periods=1).mean()
    

    样品 以下内容:

    np.random.seed(1256)
    
    df = pd.DataFrame(np.random.randint(10, size=(10, 5)), columns=list('abcde'))
    print (df)
       a  b  c  d  e
    0  1  5  8  8  9
    1  3  6  3  0  6
    2  7  0  1  5  1
    3  6  6  5  0  4
    4  4  9  4  6  1
    5  7  7  5  8  3
    6  0  7  2  8  2
    7  4  8  3  5  5
    8  8  2  0  9  2
    9  4  7  1  5  1
    
    df = df.rolling(5, min_periods=1).mean()
    print (df)
              a         b     c         d         e
    0  1.000000  5.000000  8.00  8.000000  9.000000
    1  2.000000  5.500000  5.50  4.000000  7.500000
    2  3.666667  3.666667  4.00  4.333333  5.333333
    3  4.250000  4.250000  4.25  3.250000  5.000000
    4  4.200000  5.200000  4.20  3.800000  4.200000
    5  5.400000  5.600000  3.60  3.800000  3.000000
    6  4.800000  5.800000  3.40  5.400000  2.200000
    7  4.200000  7.400000  3.80  5.400000  3.000000
    8  4.600000  6.600000  2.80  7.200000  2.600000
    9  4.600000  6.200000  2.20  7.000000  2.600000
    
        2
  •  0
  •   zipa    6 年前

    因此,您要添加:

    df['sa3'].fillna(df['s3'].mean(), inplace=True)
    

    希望我使用了正确的列名。

        3
  •  0
  •   ajsp    6 年前

    你可以用熊猫找到滚动的意思,然后填充 NaN 零。

    使用如下内容:

    col = [1,2,3,4,5,6,7,8,9]
    df = pd.DataFrame(col)
    
    df['rm'] = df.rolling(5).mean().fillna(value =0, inplace=False)
    print df
    
       0   rm
    0  1  0.0
    1  2  0.0
    2  3  0.0
    3  4  0.0
    4  5  3.0
    5  6  4.0
    6  7  5.0
    7  8  6.0
    8  9  7.0
    
    推荐文章