pandas 1.0 заменить одну строку dtype столбцы на NAN - PullRequest
0 голосов
/ 04 марта 2020

Я начал использовать StringDtype в pandas 1.0.1 Я знаю, это считается экспериментальным, но я сталкиваюсь с проблемой при использовании замены в столбце строки типа, содержащей NaN.

Для пример:

df = pd.DataFrame({'a': ['a', 'b', 'c', None]}, dtype='string')
df.replace({'c': 'e'})

Выше приведено следующее:

TypeError: Cannot compare types 'ndarray(dtype=object)' and 'str'

Возможно, это ошибка или я что-то не так делаю?

1 Ответ

0 голосов
/ 10 апреля 2020

Попробуйте:

import pandas as pd

df = pd.DataFrame({'a': ['a', 'b', 'c', None]}, dtype='string')

df.replace('c', 'e', inplace=True)
print(df)

вы получите:

      a
0     a
1     b
2     e
3  <NA>

или если вы хотите сохранить dict в качестве значения to_replace, вам сначала потребуется:

list = ['a', 'b', 'c', np.nan]
s = pd.Series(list)
df = pd.DataFrame({'a': s})    

df.replace({'c': 'e'}, inplace=True)
print(df)

с выводом:

     a
0    a
1    b
2    e
3  NaN

не может реально объяснить, почему это работает, хотя прочитал документацию .

...