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

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

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

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python

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

pandas

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

Q&A

解決済

1回答

379閲覧

特定の時間帯に対して日付を加算する方法

raurau4471

総合スコア13

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Python

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

pandas

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

1グッド

1クリップ

投稿2020/05/23 18:38

前提・実現したいこと

以下のようなdataframeに対して、時間が0:00の部分にのみ日付を1日加算したいです。

python

1df.head(50) 2 3datetime 42012-01-01 01:00:00 21099.0 27.8 9.86 3.59 52012-01-01 02:00:00 21112.0 27.8 7.77 3.59 62012-01-01 03:00:00 21137.0 27.8 10.56 3.59 72012-01-01 04:00:00 21162.0 27.8 10.56 3.59 82012-01-01 05:00:00 21175.0 27.9 7.07 3.59 92012-01-01 06:00:00 21200.0 27.9 10.56 3.59 102012-01-01 07:00:00 21225.0 27.9 10.21 3.60 112012-01-01 08:00:00 21237.0 27.9 7.43 3.60 122012-01-01 09:00:00 21262.0 28.0 10.57 3.60 132012-01-01 10:00:00 21275.0 28.0 7.08 3.60 142012-01-01 11:00:00 21300.0 28.0 10.58 3.60 152012-01-01 12:00:00 21325.0 28.1 7.44 3.60 162012-01-01 13:00:00 21338.0 28.1 10.23 3.60 172012-01-01 14:00:00 21363.0 28.1 8.49 3.60 182012-01-01 15:00:00 21375.0 28.1 9.18 3.60 192012-01-01 16:00:00 21401.0 28.2 10.58 3.60 202012-01-01 17:00:00 21413.0 28.2 7.09 3.60 212012-01-01 18:00:00 21438.0 28.2 10.58 3.60 222012-01-01 19:00:00 21463.0 28.2 8.84 3.60 232012-01-01 20:00:00 21476.0 28.3 8.84 3.60 242012-01-01 21:00:00 21501.0 28.3 10.58 3.60 252012-01-01 22:00:00 21526.0 28.3 10.58 3.60 262012-01-01 23:00:00 21539.0 28.3 7.09 3.60 272012-01-01 00:00:00 21564.0 28.4 10.58 3.61 282012-01-02 01:00:00 21576.0 28.4 7.10 3.61 292012-01-02 02:00:00 21602.0 28.4 10.59 3.61 302012-01-02 03:00:00 21627.0 28.5 8.15 3.61 312012-01-02 04:00:00 21639.0 28.5 9.54 3.61 322012-01-02 05:00:00 21664.0 28.5 7.45 3.61 332012-01-02 06:00:00 21677.0 28.5 10.24 3.61 342012-01-02 07:00:00 21702.0 28.6 9.19 3.61 352012-01-02 08:00:00 21715.0 28.6 8.50 3.61 362012-01-02 09:00:00 21740.0 28.6 9.89 3.61 372012-01-02 10:00:00 21765.0 28.6 10.94 3.61 382012-01-02 11:00:00 21777.0 28.7 7.45 3.61 392012-01-02 12:00:00 21803.0 28.7 10.58 3.31 402012-01-02 13:00:00 21828.0 28.7 10.29 3.31 412012-01-02 14:00:00 21853.0 28.8 9.24 3.31 422012-01-02 15:00:00 21878.0 28.8 9.24 3.32 432012-01-02 16:00:00 21890.0 28.8 8.90 3.32 442012-01-02 17:00:00 21916.0 28.8 10.29 3.30 452012-01-02 18:00:00 21928.0 28.9 6.78 3.30 462012-01-02 19:00:00 21953.0 28.9 10.27 3.30 472012-01-02 20:00:00 21978.0 28.9 10.27 3.30 482012-01-02 21:00:00 22003.0 29.0 9.22 3.30 492012-01-02 22:00:00 22016.0 29.0 7.83 3.30 502012-01-02 23:00:00 22041.0 29.0 10.27 3.30 512012-01-02 00:00:00 22053.0 29.0 6.78 3.30 522012-01-03 01:00:00 22079.0 29.1 10.27 3.30 532012-01-03 02:00:00 22091.0 29.1 6.78 3.30

試したこと・発生している問題

timedelta(days=1)を施そうかと考えましたが、この時、時間が0:00となっている行にのみこれを適用する方法はありませんか?

DrqYuto👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

次のようにして解決しました。

python

1import datetime 2 3row_mask = (df['datetime'].dt.hour == 0) & (df['datetime'].dt.minute == 0) 4 5df.loc[row_mask,'datetime'] = df.loc[row_mask]['datetime'] + datetime.timedelta(days=1)

投稿2020/05/23 20:21

raurau4471

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問