Вы также можете попробовать figlegend
. Можно создать легенду, независимую от любого объекта Axes. Однако вам может потребоваться создать несколько «фиктивных» путей, чтобы убедиться, что форматирование объектов передается правильно.
Вам нужно назначить обратно
df = df.replace('white', np.nan)
или передать param inplace=True
:
In [50]:
d = {'color' : pd.Series(['white', 'blue', 'orange']),
'second_color': pd.Series(['white', 'black', 'blue']),
'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
df.replace('white', np.nan, inplace=True)
df
Out[50]:
color second_color value
0 NaN NaN 1.0
1 blue black 2.0
2 orange blue 3.0
Большинство pandas ops возвращают копию, и большинство из них имеют параметр inplace
, который обычно по умолчанию False
Учитывая, что это лучший результат Google при поиске «Pandas replace не работает», я хотел бы также упомянуть, что:
replace выполняет поиск полной замены, если вы не включите переключатель регулярных выражений. Используйте regex = True, и он также должен выполнять частичную замену.
blockquote>Мне потребовалось 30 минут, чтобы, надеюсь, я сказал следующее лицо 30 минут.
Когда вы используете df.replace()
, он создает новый временный объект, но не изменяет ваш. Вы можете использовать одну из двух следующих строк для изменения df:
df = df.replace('white', np.nan)
df.replace('white', np.nan, inplace = True)