如何使用熊猫从化学式(即从C18H36P1获得氢)中提取氢数

时间:2019-05-07 16:12:44

标签: python chemistry

我希望能够在pandas数据框中创建一个新列,其中包含化学式中的氢数。从该化学式C18H36P1S1得出氢数,将得出36。该化学式是通用的,因此您不能只输入确切的化学式,一列中有数千个。

2 个答案:

答案 0 :(得分:1)

import re

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

返回:

'36'

答案 1 :(得分:1)

您可以使用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