проверить данные и вернуть требуемое значение - PullRequest
0 голосов
/ 02 ноября 2019

У меня есть два столбца номера телефона и стационарного телефона, некоторые имеют только номер телефона, а некоторые имеют только стационарный телефон, а некоторые имеют оба. Мне нужно создать новый столбец, и он проверит оба столбца и вернет мобильный или стационарный телефон, или оба.

1 Ответ

0 голосов
/ 02 ноября 2019

Я предполагаю, что ваши панды. Столбцы данных называются df, mobile и landline столбцы содержат номера телефонов. Я написал бы функцию, которая проверяет, есть ли у столбца значение или нет, а затем применила бы его к кадру данных по строкам следующим образом:

# You may discard type annotations if you want.
def phone_type(row: dict) -> str:
    # It is not obligatory to coerce to boolean
    has_mobile = bool(row["mobile"]) 
    has_landline = bool(row["landline"])

    if has_mobile and has_landline:
        return "both"
    elif has_mobile:
        return "mobile"
    elif has_landline:
        return "landline"
    else:
        return "no phone"

df["phone_type"] = df.apply(phone_type, axis=1)

df.apply(function, axis=1) обрабатывает каждую строку как dict,таким образом, мы можем получить доступ к столбцам как к словарным ключам.

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