У меня есть фрейм данных df
с одним столбцом, содержащим многострочный текст:
df = pd.DataFrame({'ID': ['1','3', '3'], \
'code_description': ['N1.12 - some description - further details of the case\nR31 - customer not satisfied, (case processed)', '"C3.42 - some description - further details of the case\nL91.29 - some description : case processed"','"O20.12 - some description - further details of the case\nZ30.00 - some description / case further details\nL20 - some description "'], \
'postcode': ['1037', '2512','2512'], \
'age': ['34', '56','56']})
Я хочу разбить многострочные данные, хранящиеся в столбце code_description
, и хотел бы получить только коды, такие как N1.12 или R31 и т. Д. И только один код на строку на ID
.В то же время я хотел бы сохранить другие столбцы в кадре данных, но я не понимаю, как это получить.
Я пытался использовать метод str.split (), чтобы разделить разрывы строк, а затем использовать то же самое для разделения кода.Я сделал следующее:
df['code_description'].str.split("\n", expand=True).stack()
и после этого использовал df['code_description'].str.split(" - ").str[0]
для извлечения кодов.Но с этим методом я теряю информацию, связанную с ID
и другими столбцами, такими как postcode
и age
.
В качестве вывода мне нужно следующее:
ID code_description postcode age
0 1 N1.12 1037 34
1 1 R31 1037 34
2 3 C3.42 2512 56
3 3 L91.29 2512 56
4 3 O20.12 2512 56
5 3 Z30.00 2512 56
6 3 L20 2512 56
Есть ли какой-нибудь хороший способ получить такой вывод в Пандах?