У меня есть данные в серии данных pandas, представляющей собой строку значений, разделенных запятыми, например,
workid:1234, homeid:4567, schoolid: 6789
Строка может содержать пустые или несколько значений, а номера идентификаторов могут иметь переменную длину:
id_numbers
0
1 workid:1234
2 workid:2567, homeid:345, schoolid: 678
3 homeid:567, schoolid: 6789
Я хочу создать новую серию 'workid', которая содержит только значение workid:xxxx
.
work_id_numbers
0
1 workid:1234
2 workid:2567
3
Я пробовал
df['id_list'] = df['id_numbers'].str.split(",")
, который создает списки
id_list
0
1 [workid:1234]
2 [workid:2567, homeid:345, schoolid: 678]
3 [homeid:567, schoolid: 6789]
Я попытался перебрать списки, чтобы извлечь значение workid:xxx
for num in df['id_list']:
if num.str.contains("workid", na=False) == True:
df['work_id_number'] = num
Однако у меня есть ошибка:
AttributeError: 'float' object has no attribute 'str'
Меня поражаетТам могут быть способы приблизиться к этому, поэтому я открыт для исправления моего метода или альтернативного метода.