我想遍歷 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 之間的平均值(同一行和相鄰列的元素)
uj5u.com熱心網友回復:
有一些小事情,但我希望這會有所幫助。
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
uj5u.com熱心網友回復:
你必須替換list(df)為range(len(df.columns))
并df.loc通過df.iloc
for i in range(len(df)):
for j in range(len(df.columns)):
if pd.isnull(df.iloc[i,j]):
df.iloc[i,j] = (df.iloc[i-1,j] df.iloc[i 1, j])/2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/519425.html
