[python] 新規列に条件に合うデータを追加したい

実現したいこと

下記のようなdataframeで条件にあうデータを追加したいです
(都道府県列を判定してエリア列に該当のエリアを追加)

|ID|日付|種別|都道府県|エリア| ←エリアを新規列
|1111|2022/1/1|新規|東京 |関東|
|2222|2022/1/1|新規|神奈川|関東|
|3333|2022/1/2|変更|大阪 |大阪|

該当のソースコード

python

1import pandas as pd 2import numpy as np 3 4df_test = pd.DataFrame({'ID': [1111, 2222, 3333],5 '日付': [2022/1/1, 2022/1/1, 2022/1/2], 6 '種別': ['新規', '新規', '変更'],7 都道府県': ['東京', '神奈川', '大阪']})8 9①の方法 10adict = pd.DataFrame({'都道府県': ['東京','神奈川','大阪'], 11 'エリア': ['関東','関東','大阪']})12df = pd.concat([df_test, adict])13df.assign(area = lambda x:np.where(x["都道府県"] == df['都道府県'], df['エリア'],0))14 15--------------------------------------------------------16②の方法 17bdict = ({'都道府県': ['東京','神奈川','大阪'], 'エリア': ['関東','関東','大阪']})18for k, v in bdict.items():19 if (row.'都道府県' == k):20 return v 21

試したこと

①、②の方法を考えましたが実現が上手く出来ず、ご指摘を頂きたいです。

コメントを投稿

0 コメント