前提・実現したいこと
時系列で、1時間ごとに以下のような形式でデータの入っているものがあります。
datetime on_off
2020-05-31 11:31 00000000000000000000000000000
2020-05-31 12:00 000000000000000000000000000000000000000000000000000000000000
2020-06-01 13:00 111111000100000111100000000000000000000000000000000000000000
2020-06-03 14:18 000000000000000000000000000000000000000000
2020-06-05 15:00 000000000000000000000000000000000000000000000000000000000000
2020-06-06 03:00 000000000000000000000000000000000000000000000000000000000000
前提条件として、
・欠損している箇所には空白もNaNも入っておらず、値として入ってるのは数字が始まる部分から
・「on/off」データは一行に60個あるのが正常なもの
・datetimeで「11:31」のように途中から始まってる場合は[on/off]列は31分から始まるので29個値が並ぶ
出したい形としては、
2020-04-13 11:31:00 0
2020-04-13 11:32:00 0
2020-04-13 11:33:00 0
2020-04-13 11:34:00 0
[省略]
2020-04-13 11:59:00 0
のように毎分1レコードのように対応させたいのです。
該当のソースコード
python
1start_at, end_at = df.datetime.min(), df.datetime.max() 2res = df.reindex(pd.date_range(start_at, end_at, freq="T"))
で、まず分毎のデータを作成し、
python
1df["on_off"].str.split('') 2list_split =[[a for a in y if a != '']for y in y]
でリスト化して結合することで対応しようとしたのですが、日にち自体も歯抜けしている為に二つの数が合わず、
結合ができませんでした。
このようなデータに対してアプローチ自体が間違えてるのでしょうか・・・。
何卒よろしくお願いします。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/31 07:10