如何在对列应用滚动平均值时填充第一个N/A单元格-python
我需要对一列应用滚动平均值,如图1 s3所示,在应用滚动平均值并将windows设置为5后,我得到了正确的答案,但将前4行留空,如图2 sa3所示 我想用pic1 s3中直到当前行的所有数据的平均值填充pic2 sa3中的前4个空单元格,如pic3 a3所示 除了滚动平均法外,我如何使用一个简单的函数。 所以您要添加:如何在对列应用滚动平均值时填充第一个N/A单元格-python,python,pandas,rolling-average,Python,Pandas,Rolling Average,我需要对一列应用滚动平均值,如图1 s3所示,在应用滚动平均值并将windows设置为5后,我得到了正确的答案,但将前4行留空,如图2 sa3所示 我想用pic1 s3中直到当前行的所有数据的平均值填充pic2 sa3中的前4个空单元格,如pic3 a3所示 除了滚动平均法外,我如何使用一个简单的函数。 所以您要添加: df['sa3'].fillna(df['s3'].mean(), inplace=True) 希望我使用了正确的列名。您可以使用pandas查找滚动平均值,然后用零填充N
df['sa3'].fillna(df['s3'].mean(), inplace=True)
希望我使用了正确的列名。您可以使用pandas查找滚动平均值,然后用零填充
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
我认为需要参数
min\u periods=1
in:
最小周期:int,默认无
窗口中需要有值的最小观察数(否则结果为NA)。对于由偏移指定的窗口,默认值为1
样本:
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
我明白了,有些答案是处理空值并用平均值替换,有些答案是创建滚动平均值,但不是用它替换空值。所以我自己算出了代码,把它贴在这里
df['Col']= df['Col'].fillna(df['Col'].rolling(4,center=True,min_periods=1).mean())
'4'
是滚动窗口的长度
<代码>中心= Trime< /Cord>指示替换的值将考虑上述值的一半和低于空值的一半值来替换.< /P>谢谢,但是我可能不清楚地描述我的问题,但是JeZraL提供了我想要感谢的答案,但是我需要更精确的数字,但是我有0个用于不能计算的答案,只是不是所有人,贾泽拉尔给我想要问的答案
df['Col']= df['Col'].fillna(df['Col'].rolling(4,center=True,min_periods=1).mean())