You can use the following function to fill the NA values in a DataFrame with the average value of the row that NA belongs to:
import pandas as pd
import numpy as np
def fill_na_row(df):
df_filled = df.copy()
for index, row in df.iterrows():
avg_row = np.nanmean(row) # Calculate average of non-NaN values in the row
df_filled.loc[index] = row.fillna(avg_row) # Fill NaN values with average
return df_filled
# Sample Input
df = pd.DataFrame([[1, np.nan, 2],
[2, 3, 5],
[np.nan, 4, 6],
[None, 5, 6]])
filled_df = fill_na_row(df)
print(filled_df)
This function iterates over each row of the DataFrame and calculates the average value of non-NaN elements in that row using np.nanmean()
. It then fills the NaN values in that row with this average value using fillna()
. The resulting DataFrame is returned as df_filled
.
内容由零声教学AI助手提供,问题来源于学员提问