エクセルを元に作成されたcsvファイルを読み込み、pandasのpd.to_datetimeを使ってdatetime型に変換するスクリプトを作ろうと思っています。ただ、エクセルの保存方法の変更により、以下のファイル1、2のように時間表記に揺れが発生しています。
このとき、それぞれの時間書式に応じてto_datetimeのスクリプトをif分で分けたいと思っているのですが、現在の書式を判定する方法は何を使ったらいいのでしょうか?
len(df['月日'][0])で判定することを考えたのですが、別の似た書式が入ってきたときにエラーになると思ったので、今の書式方法を識別できる判定をしたいと考えています(その意味で、if文で分けなくても変換できる方法があれば教えていただけないでしょうか?)。
ファイル1
月日 | 時分 | Value |
---|---|---|
4月1日 | 8:40:00 | 1 |
4月1日 | 8:40:10 | 3 |
ファイル2
月日 | 時分 | Value |
---|---|---|
2020/10/1 | 8:55 | 1 |
2020/10/1 | 8:56 | 2 |
*秒記載がないが、00秒とみなして問題ない。
Python3
1# ファイル1を読む処理 2df = pd.read_csv('file1.csv') 3 4if ...: # ここで的確に判定したい(他の書式が来ても誤分類されないようにしたい) 5 df.index = pd.to_datetime(df['月日']+'/' + df['時分'], format='%Y/%m/%d/%H:%M:%S') 6elif ...: 7 df.index = pd.to_datetime(...) 8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/16 23:34