質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

1回答

1446閲覧

日付の差分で何年経ったかを取得したい。

occur

総合スコア16

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/04/16 05:33

こんにちは!
いつもお世話になっております。

今回は4月1日から何年経ったのか・・・というのが取りたいのですが書き方が思いつきません。

名前誕生日
桃吉2017-12-04
紅丸2018-07-12
ミミ2019-02-12
モサ吉2019-12-15

誕生日はdatetime型です

このようなデータがあったとき、それぞれ生まれてから何年経ったのかを計算したいです。
2020-04-01から誕生日の差分を出して生まれて何年経ったかが知りたいのですが。。

最初やったこととしては、

python

12020 - df["誕生日"].dt.year

で何年・・・をやっていたのですが、これだとモサ吉は生まれて1年経っていないのに、年だけの差分だと1年になってしまうことに気付きました。。。。。

思いつく方いらっしゃいましたら教えていただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/04/16 05:52

満年齢の計算の仕方を知らないということですか? 誕生日が来ていれば今年引く誕生年、来ていなければそれ引く一。
occur

2020/04/16 06:04

えっと、書き方がわからないということですね…
Zuishin

2020/04/16 06:14 編集

誕生日の年を今年に変えて今年の誕生日を作成し、それと今年の 4/1 を比較します。 その大小で誕生日が来たかどうかがわかります。 日付型の作成と年の取り出し方がわかればわかると思います。 https://docs.python.org/ja/3/library/datetime.html#datetime.date date オブジェクトのところを見てください。
occur

2020/04/16 06:53

丁寧にありがとうございます・・・!!! 参考にもう一度考えて書いてみます!!
guest

回答1

0

もっとスマートな書き方があるとは思います。

from dateutil.relativedelta import relativedelta df['今'] = pd.to_datetime('2020-07-11') df['経過月数']=None for i in range(len(df)): delta = relativedelta(df['今'].iloc[i], df['誕生日'].iloc[i]) df['経過月'].iloc[i] = delta.years*12+delta.months print(df) 名前 誕生日 今 経過月数 0 桃吉 2017-12-04 2020-07-11 31 1 紅丸 2018-07-12 2020-07-11 23 2 ミミ 2019-02-12 2020-07-11 16 3 モサ吉 2019-12-15 2020-07-11 6

投稿2020/07/10 16:19

john_doe_

総合スコア354

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問