実現したいこと
下記のような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
試したこと
①、②の方法を考えましたが実現が上手く出来ず、ご指摘を頂きたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/19 07:29
2023/02/19 07:30