2015-11-09 2 views
4

Я пытался заменить пустую строку с np.nanЗаменить пустую строку с с np.nan, но получили «NaN»

Но я None в клетках, то, что случилось с этим?

Благодаря

df.replace('', np.nan) 

enter image description here

+0

Ваше имя говорит, что вы получаете «NaN»? (что и есть ожидаемая вещь). Но можете ли вы показать воспроизводимый пример? (Http://stackoverflow.com/help/mcve) – joris

ответ

1

Там должны быть проблемы с вашими данными, а не с пандами. См сильфонные пример:

>>> data = [['a', 'b', ''], ['', 'e', 'f']] 
>>> df = pd.DataFrame(data) 
>>> df 
    0 1 2 
0 a b 
1  e f 

Если вы пытаетесь заменить '' с np.nan в приведенном выше примере, вы получите желаемый результат:

>>> df.replace('', np.nan) 
    0 1 2 
0 a b NaN 
1 NaN e f 

Однако, если случайно не был правильно указан Ваши данные :

>>> data = [['a', 'b', None], [None, 'e', 'f']] 
>>> df = pd.DataFrame(data) 
>>> df 
     0 1  2 
0  a b None 
1 None e  f 

pandas не может помочь, так как ваши данные не содержат пустые строки, но не указанных значений (None):

>>> df.replace('', np.nan) 
     0 1  2 
0  a b None 
1 None e  f 

Однако, есть еще шанс, что вы можете удалить None S из таблицы. Далее, так же глупо, как это звучит, должно работать:

>>> df.replace(np.nan, np.nan) 
    0 1 2 
0 a b NaN 
1 NaN e f 

Трудно сказать, не имея сырые данные, но надеюсь, что выше помогает.

Смежные вопросы