Я предполагаю, что ваши панды. Столбцы данных называются 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
,таким образом, мы можем получить доступ к столбцам как к словарным ключам.