locを使って、特定の条件であれば値を追加したい
下記のようなDataFrameのnameカラムがひらがなのみ、カタカナのみだった場合、kindカラムに「ひらがな」「カタカナ」と文字列を入れたい。
id name
0 1 あいうえお
1 2 かきくけこ
2 3 サシスセソ
を
id name kind
0 1 あいうえお ひらがな
1 2 かきくけこ ひらがな
2 3 サシスセソ カタカナ
このように修正したい
コード
ひらがな・カタカナの正規表現にあてて、trueだった場合値を入れるような形
import pandas as pd
import numpy as np
import re
df = pd.DataFrame(
data={
'id': [1, 2, 3],
'name': ['あいうえお', 'かきくけこ', 'サシスセソ']
}
)
pattern = re.compile('^[\u3040-\u309F]+$')
df.loc[df['name'].str.match(pattern), 'kind'] = 'ひらがな'
pattern = re.compile('^[\u30A0-\u30FF]+$')
df.loc[df['name'].str.match(pattern), 'kind'] = 'カタカナ'
print(df)
pandas.DataFrame.locびドキュメントはこちら