У меня есть следующий фрейм данных:
data = {'Name': ['Peter | Jacker', 'John | Parcker', 'Paul | Cash', 'Tony'],
'Age': [10, 45, 14, 65]}
df = pd.DataFrame(data)
Что я хочу извлечь - это псевдонимы (слово после символа '|') только для человека, у которого более 16 лет. Для этого я использую следующий код:
df['nickname'] = df.apply(lambda x: x.str.split('|', 1)[-1] if x['Age'] > 16 else 0, axis=1)
Однако, когда я печатаю никнейм, я получаю только следующие результаты:
Name Age nickname
Peter | Jacker 10 0.0
John | Parcker 45 NaN
Paul | Cash 14 0.0
Tony 65 NaN
И что я хочу, это:
Name Age nickname
Peter | Jacker 10 NaN
John | Parcker 45 Parcker
Paul | Cash 14 NaN
Tony 65 NaN
Что я делаю не так?