Как извлечь количество водорода из химической формулы (т.е. из C18H36P1, чтобы получить 36), используя панд - PullRequest
1 голос
/ 07 мая 2019

Я хотел бы иметь возможность создать новый столбец в кадре данных pandas, который содержит количество атомов водорода из химической формулы.Получение числа водородов из этой химической формулы C18H36P1S1 даст 36. Химические формулы являются общими, поэтому вы не можете просто указать точную химическую формулу, их в колонке тысячи.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Вы можете использовать str.extract

df = pd.DataFrame({'formula':['C18H36P1S1']})
df['No Hydrogens'] = df['formula'].str.extract('.*H(\d+)[A-Za-z].*')


    formula     No Hydrogens
0   C18H36P1S1  36
1 голос
/ 07 мая 2019
import re

REGEX = re.compile(r'H(?P<hydrogens>\d+)')
REGEX.search('C18H36P1S1').group('hydrogens')

возвращается:

'36'

...