文字列から数値を抽出し、合計したい
「国語20数学30」から20+30=50を求めたい。データには、このペアが1000件ほど存在します。
re.matchを使えると思うのですが、どうもうまく行きません。ヒントをご教示頂けるとありがたいです。
reを使わないバージョンですが、現在のところ、下記のように書いているのですが、
うまく行きません。
import pandas as pd
import numpy as np
df = pd.DataFrame(
{'x': ['国語20数学60', '160', '国語100数学20']},
index=[1, 2, 3])
# index no.2には、国語と数学の合計点が入っています。
print(df)
df['total'] = np.zeros((len(df),1))
lang = list(range(1, 101))
math =list(range(1, 101))
for s_lang in lang :
for s_math in math :
for i in range(len(df)):
if ("国語%d数学%d" %(s_lang,s_math)) in df['x'][i]:
df['total'][i] = s_lang+s_math
else:
df['total'][i] =df['x'][i]
print(df)