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