我想遍历 df 的所有值,这样如果它检测到一些零,我可以用相邻列的平均值替换该特定元素。
我试过这段代码,但不知道为什么不起作用。有人可以帮助我吗??
import pandas as pd
import numpy as np
import numpy as np
d = {'col1': [4, 1, 2], 'col2': [1, 0, 4], 'col3': [12, -2, 4]}
df = pd.DataFrame(data=d)
for i in range(len(df)):
for j in list(df):
if df.loc[i,j] is np.nan:
df.loc[i,j] = (df.loc[i,j-1] + df.loc[i, j+1])/2
这样矩阵2x2位置的0就会被1到-2(同一行相邻列的元素)之间的均值代替
最佳答案
有一些小问题,但我希望这对您有所帮助。
import pandas as pd
import numpy as np
d = {'col1': [4, 1, 2], 'col2': [1, np.nan, 4], 'col3': [12, -2, 4]}
df = pd.DataFrame(data=d)
rows, cols = df.shape
for i in range(rows):
for j in range(cols):
if np.isnan(df.iloc[i,j]):
df.iloc[i,j] = (df.iloc[i,j-1] + df.iloc[i, j+1])/2
关于python - 遍历 df 的所有值以替换零值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74201629/