Мне нужно создать новый столбец из другого. Набор данных создается с помощью этого кода (я извлек только несколько строк):
import pandas as pd
new_dataframe = pd.DataFrame({
"Name": ['John', 'Lukas', 'Bridget', 'Carol','Madison'],
"Notes": ["__ years old. NA", "__ years old. NA",
"__ years old. NA", "__ years old. Old account.",
"__ years old. New VIP account."],
"Status": [True, False, True, True, True]})
, который генерирует следующие
Name Notes Status
John 23 years old. NA True
Lukas 52 years old. NA False
Bridget 64 years old. NA True
Carol 31 years old. Old account True
Madison 54 years old. New VIP account. True
Мне нужно создать два новых столбца, которые содержат информацию о возрасте в формат:
- __ лет (три слова): например, 23 года;
- __ (только числа): например, 23
В end У меня должно быть
Name Notes Status L_Age S_Age
John 23 years old. NA True 23 years old 23
Lukas 52 years old. NA False 52 years old 52
Bridget 64 years old. NA True 64 years old 64
Carol 31 years old. Old account True 31 years old 31
Madison 54 years old. New VIP account. True 54 years old 54
Я не знаю, как извлечь первые три слова, а затем только первое, чтобы создать новые столбцы. Я пробовал использовать
new_dataframe.loc[new_dataframe.Notes == '', 'L_Age'] = new_dataframe.Notes.str.split()[:3]
new_dataframe.loc[new_dataframe.Notes == '', 'S_Age'] = new_dataframe.Notes.str.split()[0]
, но это неверно (ValueError: Must have equal len keys and value when setting with an iterable
).
Помощь будет принята с благодарностью.