前提・実現したいこと
事業所のデータ
df1 = pd.DataFrame({
"office":["a","b","c","d"],
"address":["堺市堺区","練馬区","川崎市中原区", "千代田区"],
"year":[2016,2017,2016,2018]})
市区町村ごとの地価データ
df2 = pd.DataFrame({
"place":["大阪府大阪市此花区", "大阪府堺市堺区", "東京都品川区","東京都練馬区","川崎市中原区","東京都千代田区","大阪府大阪市此花区", "大阪府堺市堺区"],
"year":[2017,2017,2016,2017,2016,2018,2016,2016],
"price"["100万","20万","130万","90万","70万","200万","80万","15万"]})
において、
1 [事務所iの"address"と地価データの"place"]および[事務所iの"year"と地価データの"year"]の二つの条件をつけて、
2 地価データの地価("price")を検索し、
3 見つけた"price"を事務所データに新しい列"price"として追加したいです。
どのようなコードを組めば回すことができるでしょうか。
補足:実際には事務所データは2万、地価データは4000程度あるので、できるだけ早く処理できるコードが大変ありがたいです。
発生している問題・エラーメッセージ
何度か試みましたが、事務所データに"price"列を作ることはできませんでした。
該当のソースコード
python
1 2from tqdm import tqdm 3 4for i in tqdm(range(len(df1))): 5 if df.loc[i,"year"] == 2018: 6 for j in range(len(df2)): 7 if df.loc[i,"address"] in str(df2.loc[j,"place"]): 8 df.loc[i,"price"] = df2.loc[j,"price"] 9for i in tqdm(range(len(df1))): 10 if df.loc[i,"year"] == 2017: 11 for j in range(len(df2)): 12 if df.loc[i,"address"] in str(df2.loc[j,"place"]): 13 df.loc[i,"price"] = df2.loc[j,"price"] 14 15for i in tqdm(range(len(df1))): 16 if df.loc[i,"year"] == 2016: 17 for j in range(len(df2)): 18 if df.loc[i,"address"] in str(df2.loc[j,"place"]): 19 df.loc[i,"price"] = df2.loc[j,"price"] 20
補足情報(FW/ツールのバージョンなど)
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/19 02:25