python - 遍历 df 的所有值以替换零值

标签 python pandas replace iteration nan

我想遍历 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/

相关文章:

python - 在 Pandas 中就地合并两个数据框

python - 将变量存储为另一个变量的属性是个好习惯吗?

python - Pandas groupby计数大于1

python - 数据框用空白替换下划线不起作用

android - 如何在屏幕底部创建一个不是矩形的屏幕安卓键盘?

python - 使用 concurrent.futures.ProcessPoolExecutor 动态创建函数的限制

python - SA警告 : Could not instantiate type <class 'sqlalchemy.sql.sqltypes.INTEGER' > when I use sqlalchemy and pd. io.sql.read_sql

javascript - Notepad++ 将所有 px 引用乘以 X?

python - AppEngine urlfetch validate_certificate=False/None 不被尊重

python - Scrapy处理asp.net站点中的 session cookie或302