Python初心者です。pandasのDataFrameを使ってデータ処理を練習しています。 Python3を使っています。
前提・実現したいこと
2つのDataFrame(1, 2)をベースにそれぞれのイベント時の年齢を出すようなプログラムを検討しています。
手元には加工用のデータとしてDataFrame1(出生日データ)、DataFrame2(各イベント時における年月日)。このDataFrame2の形をベースにしたまま、各イベントにおける年月日を、DataFrame1の情報を元に年齢に振り分けをしたいです。
DataFrame1とDataFrame2のindexはそれぞれ共通のindexを利用しているというという前提です。誕生日のデータはたくさんあり、その中に該当するidと誕生日が埋もれているイメージです。(追記)
#加工に使用する元データ #DataFrame1 # birthday #12 1910-01-01 #9 1980-02-03 : #8 1962-04-04 #10 1949-04-06 #DataFrame2 # high_school university1 university2 #8 1977-03-31 1985-03-31 1999-3-31 #9 1995-03-31 None None #10 1954-03-31 1964-3-31 None
#最終的に完成してほしい形(日時を年齢に置き換える) #DataFrame3 # high_school university1 university2 #8 15 23 42 #9 15 None None #10 15 22 None
実際に算出するステップとしては下記を考えました
1.DataFrame2.applymapの形で一気に処理することを想定
2.処理実行時に該当の要素について、その位置にある「インデックス名を取得」。
3.取得したインデックス名をDataFrame1で確認し該当する出生日を回収して、該当要素にある年月日と差し引きを行い、年齢を出す。
4.処理した結果DataFrame2に入っている出生日がイベント発生時の年齢に置き換わる(DataFrame3を取得)。
上記考えた際に「該当する要素のインデックス名を取得する方法」が実装できずにおり、アドバイスもらえると嬉しいです。また、もっと簡単な方法があれば是非教えてほしいです。
*イベント日時などは質問用に適当に作成したもので特に一貫性はありません。
回答2件
あなたの回答
tips
プレビュー