我无法在DataFrame表列中添加插入平均值而不是零。
我有一个单表DataFrame -它是一个单列。
我正尝试从这列中删除零,并用附近的最近值替换它们。
有没有可能想出类似的办法?
我想了很久,但什么也想不出来。
我将非常感谢任何信息。
i = 2
for i in range(len(df)):
if df.loc[i, "t"] != 0 and df.loc[i-3, "t"] != 0:
df.at[i-2, "t"] = df.at[i-3, "t"]
df.at[i-1, "t"] = df.at[i, "t"]
i = i + 1
i = 0
for i in range(len(df)):
if df.loc[i, "t"] == 0 and i < (len(df)-1):
if df.loc[i+1, "t"] != 0:
df.at[i, "t"] = df.at[i+1, "t"]
elif df.loc[i, "t"] == 0 and df.loc[i+3, "t"] == 0 and i < (len(df)-1):
if df.loc[i-1, "t"] != 0:
df.at[i, "t"] = df.at[i-1, "t"]
i = i + 1
0
0
-1.2
0
0
-3.5
0
0
1.59
0
0
2.93
0
0
-4.7
0
0
4.36
0
0
2.18
0
--
-1.2
-1.2
-1.2
-1.2
-3.5
-3.5
-3.5
1.59
1.59
1.59
2.93
2.93
2.93
-4.7
-4.7
-4.7
4.36
4.36
4.36
2.18
2.18
2.18
--
-1.2
-1.2
-1.2 = (-1.2 + -3.5) / 2
-1.2 = (-1.2 + -3.5) / 2
-3.5
-3.5 = (-3.5 + 1.59) / 2
-3.5 = (-3.5 + 1.59) / 2
1.59
1.59
1.59
2.93
2.93
2.93
-4.7
-4.7
-4.7
4.36
4.36
4.36
2.18
2.18
2.18
1条答案
按热度按时间vhmi4jdf1#
您可以使用类似于以下内容的内容:首先,用nan填充零。
然后使用
fillna()
和method
参数:或使用
interpolate()
: