前提・実現したいこと
python DataFrame操作中に不具合が発生しております.
外部のcsvファイルをDataFrameにインポートし,条件抽出で任意のデータを抽出したいのですがうまくいきません...
・指定しているpath,ファイル名は合っています.
発生している問題・エラーメッセージ
getTemperature("2017040100")の返り値: Series([], Name: 0, dtype: float64) 実行時のdf[df['time'] == time]自体は empty dataframe となっております.
該当のソースコード
Python
1import pandas as pd 2import csv 3import numpy as np 4 5def getTemperature(code): 6 year = str(code)[0:4] 7 month = str(code)[4:6] 8 date = str(code)[6:8] 9 hour = str(code)[8:10] 10 11 path = './weather/temp_' + year + '.csv' 12 df = pd.read_csv(path, header=4, names=["time", 0, 1, 2]) 13 14 time = year + '/' + str(int(month)) + '/' + str(int(date)) + ' ' + str(int(hour)) + ':00:00' 15 print(df[df['time'] == time]) 16 return df[df['time'] == time][0] 17 18getTemperature("2017040100")
試したこと
関数とは関係なく,単体で
=======================
df[["time"] == "2017/4/1 0:00:00"][0]
=======================
time = "2017/4/1 0:00:00"
df[["time"] == time][0]
=======================
と入力すると,正しいデータを出力してくれます.
補足情報(FW/ツールのバージョンなど)
==============================
↓読み込んでいるCSVファイル(気象庁の気温アーカイブです.)↓
==============================
ダウンロードした時刻:2021/12/26 19:14:33
,地域,地域,地域
年月日時,気温(℃),気温(℃),気温(℃)
,,品質情報,均質番号
2017/1/1 1:00:00,5.1,8,1
2017/1/1 2:00:00,5.5,8,1
2017/1/1 3:00:00,6.0,8,1
==============================
~(略)~
==============================
2017/3/31 22:00:00,6.4,8,1
2017/3/31 23:00:00,6.1,8,1
2017/4/1 00:00:00,6.0,8,1
2017/4/1 1:00:00,6.0,8,1
2017/4/1 2:00:00,6.0,8,1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。