Сделать 2 кол в 1, не показывая Nan Pandas Python - PullRequest
0 голосов
/ 23 октября 2019

Я хочу объединить Address 2 и Address 3 в столбец. Первоначально я попытался привести к строке и использовать ее функцию конкатенации следующим образом:

df['newAdd2'] = df['Address 2'].astype(str).str.cat(df['Address 3'].astype(str), sep=' ')

(отсюда: Объединение двух столбцов текста в кадре данных в pandas / python )

, который дал такие результаты:

VillageA TownA
nan nan
nan TownC
VillageD nan

Я хочу сделать Address 3 добавленным к Address 2 (в новом столбце все в порядке). Иногда Address 3 отсутствует значение, иногда Address 2 отсутствует значение. Этот if else процесс неуклюжий (и может даже не работать ...). Что такое Pythonic способ сделать это?

if df['Address 2']:
    if df['Address 3']:
        #concate 2 and 3
    else:
        #only show 2
else:
    if df['Address 3']:
        #only show 3

Ответы [ 3 ]

0 голосов
/ 23 октября 2019

Я использовал это, чтобы объединить 2 столбца в один, вы можете создать новый столбец или использовать существующий столбец.

df['New Address']=pd.concat([df['Address 2'].dropna(),df['Address 3'].dropna()])
0 голосов
/ 24 октября 2019

Согласно комментарию:

df['Address 2'] + df['Address 3']

довольно легко .... (до)

0 голосов
/ 23 октября 2019

Пожалуйста, проверьте это однострочное решение:

import pandas as pd

x1 = pd.DataFrame({"One": [1, 2, 3, 4], "Two": [999, None, 999, None]}) 
x1["Three"] = x1.fillna("").apply(lambda row: str(row["One"]) + str(row["Two"]), axis=1)
print(x1)

Надеюсь, что ответ решил задачу, не стесняйтесь задавать вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...