前提
jupyter notebookにて
pandas 1.4.2
python 3.9.12
時刻条件とデータの記載された元のCSVファイルを
DataFrameで読み込み、
Datetimeto関数で、開始時間と終了時間の範囲の全行データの抽出結果を
別のCSVファイルへ出力したいのですが、
条件抽出前の結果で出力されています。
実現したいこと
pandasにて、元のCSVファイルを読み込み、
DataFrameで、Datetimeto関数で開始時間と終了時間の範囲で、
条件抽出した結果を別のCSVファイルへ出力したい。
発生している問題・エラーメッセージ
jupyter notebook上で出力されたOutの結果を見ると
条件で抽出できているのですが、
出力されたCSVファイルを見ると、
元のCSVファイルの条件範囲すべて出力されている。
条件抽出結果をto.csv で出力できないのでしょうか?
抽出結果をCSVに出力する方法をご教授お願いします。
該当のソースコード
モジュールのインポート
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
import seaborn as sns
ファイル選択ダイアログの表示
root = tkinter.Tk()
root.withdraw()
ファイルの拡張子 fTyp = [("","")] or fTyp = [("",".csv")]
fTyp = [("csv-file",".csv"), ("All-file","")]
フォルダパスを取得
iDir = os.path.abspath(os.path.dirname("file"))
tkinter.messagebox.showinfo('解析プログラム','ファイルを選択してください!')
file = tkinter.filedialog.askopenfilename(filetypes = fTyp,initialdir = iDir)
print(file)
ファイルパスの認識
file1 = file.replace('/', os.sep)
file_name = os.path.basename(file)
data_path = os.path.dirname(file1)
os.chdir(data_path)
print(file_name)
data = pd.read_csv(file_name,encoding = "utf-8",skip_blank_lines=True,usecols=[2,3,4,5,6,7,8,9,10,11],skiprows = 4)
#datetime型にTIMEを変換したのち、index指定する。
data["DATE1"] = pd.to_datetime(data["DATE"],yearfirst=True)
data["DATE2"] = data["DATE1"].dt.strftime("%Y-%m-%d")
DATE 列とTIME列に分かれているので、DATE&TIME結合
data["DATETIME1"] = pd.to_datetime((data["DATE2"]+"T"+data["TIME"]))
data.set_axis(pd.to_datetime(data["DATETIME1"]), axis='index', inplace=True)
data.drop(['DATE','TIME','DATE1','DATE2'], axis='columns', inplace=True)
# 開始時刻と終了時刻範囲を抽出
data.loc['2022-07-14 13:40:00':'2022-07-14 15:40:00']
print(data)
os.makedirs("SaveFolder", exist_ok=True)
data.to_csv("SaveFolder\addData.csv", index=True )
試したこと
WEBで調査しましたが、解決できませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
jupyter 1.0.0
numpy 1.22.3
pandas 1.4.2
pthon 3.9.12
回答1件
あなたの回答
tips
プレビュー