Конкатенация столбцов noneType и строковых значений (pandas фреймы данных) приводит к "NaN" - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь объединить два столбца, а второй столбец имеет несколько значений noneType. Когда я пытаюсь объединить оба столбца со значениями noneType, в результате получается столбец «NaN».

Я попытался осмотреться, чтобы посмотреть, смогу ли я найти вопросы по этому поведению, но не смог к.

Вот то, что таблица выглядела до объединения:

enter image description here

Вот мой код для объединения двух столбцов после моих модификаций:

new_table["name"] = new_table[0] + new_table[1]

Что приводит к этому:

enter image description here

Почему конкатенация приводит к «NaN» и как я могу это исправить?

Ответы [ 2 ]

2 голосов
/ 06 января 2020

Самым простым решением было бы заменить None пустой строкой:

new_table["name"] = new_table[0] + new_table[1].fillna('')
1 голос
/ 06 января 2020
df = pd.DataFrame([["K.", "Mbappe"], ["N.", np.nan]])
print (df)

Вывод:

    0       1  
0  K.  Mbappe  
1  N.     NaN  


df['Name'] = df[0].str.cat(df[1], na_rep='')
print(df)

Вывод:

    0       1      Name
0  K.  Mbappe  K.Mbappe
1  N.     NaN        N.

Это тот же подход, что и в ypnos, с использованием вместо него функции Series str.cat.

...