df.fillna(df.mean())
# axis=1 means fillna by rows
df = df.fillna(axis=1, method='backfill')
df = df.fillna(axis=1, method='ffill')
# methods
# pad / ffill: propagate last valid observation forward to next valid.
# backfill / bfill: use next valid observation to fill gap.
For one column using pandas:
df['DataFrame Column'] = df['DataFrame Column'].fillna(0)
# Try using a loc instead of a where:
df_sub = df.loc[df.yourcolumn == 'yourvalue']
df['Column_Name'].fillna(df['Column_Name'].mode()[0], inplace=True)