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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

866閲覧

pythonでdataframeの日付seriesを和暦から西暦に変えるコードを知りたい

keisukemorimoto

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2023/01/15 05:11

前提

pythonでとある会員調査表を作っています。
有効期限がまだ到来していない人数を主にカウントしています。

実現したいこと

システムが変更になり、今まで有効期限の列(IDWterm列)が西暦表示
であったものが和暦でCSV作成されるようになってしまいました。
下記のコードでは西暦表示で正常に動いていたコードです。

有効期限のIDWtermの列を和暦表示から西暦表示に変えるコードを下記コード
に当てはめて記述していただけませんでしょうか。

該当のソースコード

python

1#基本モジュール 2import pandas as pd 3 4#os関連のモジュール 5import os 6 7from jusho import Jusho 8import datetime 9 10#警告メッセージを非表示にする 11import warnings 12warnings.simplefilter('ignore') 13 14os.getcwd() #カレントディレクトリを表示する 15 16df = pd.read_csv('2017.1.1backup.csv') #pandasでデータを読み込む。#df for DataFrame 17 18df['IDWterm'] = pd.to_datetime(df['IDWterm']) #IDWtermも文字列になってしまっているためdfごとdatatime型にする 19# 昨年度末時点の有効会員のみのデータを集計する: 20df = df[df['IDWterm'] >= datetime.datetime.strptime('2016/12/31','%Y/%m/%d')] 21 22df = df.reset_index(drop=True) 23 24douseidoumei = df.duplicated(keep=False,subset=['IDWfmname','IDWfirname']) 25print(len(df)-(douseidoumei.sum()/2)) 26

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

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

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

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

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

can110

2023/01/15 05:23

「和暦表示」にて具体的にどんな値(文字列)になっているのか 対応する範囲はせいぜい平成まででよいのか などを記載ください。
keisukemorimoto

2023/01/15 05:27

例 令和5年12月14日 となっています。 令和からで大丈夫です。
guest

回答1

0

ベストアンサー

nagataaaas/Japanera: Easy Tools for Japanese Era System を使う場合。

python

1import os 2import pandas as pd 3from japanera import Japanera 4 5df = pd.DataFrame({ 6 'IDWterm': ['令和5年12月14日'] 7}) 8 9jp = Japanera() 10df['IDWterm'] = df['IDWterm'].apply(lambda d: jp.strptime(d, '%-E%-o年%m月%d日')[0]) 11 12print(df) 13df.info() 14 15# IDWterm 16# 0 2023-12-14 17# 18# <class 'pandas.core.frame.DataFrame'> 19# RangeIndex: 1 entries, 0 to 0 20# Data columns (total 1 columns): 21# # Column Non-Null Count Dtype 22# --- ------ -------------- ----- 23# 0 IDWterm 1 non-null datetime64[ns] 24# dtypes: datetime64[ns](1) 25# memory usage: 136.0 bytes

投稿2023/01/15 06:47

melian

総合スコア21106

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問