- 前提・実現したいこと
あるディレクトリに
'136.100000', '40.050000'.pkl
'137.200000', '41.050000'.pkl
'138.350000', '42.050000'.pkl
'139.505000', '43.050000'.pkl
¦
のように緯度経度がファイル名となっているpklファイルが多数格納してあり、
これに対し、
あるテーブルファイル(csv):dfに
lon lat
0 141.4125 41
1 141.4225 41
2 141.4325 41
3 141.4425 41
4 141.5000 41
... ... ... ... ...
1000 132.0000 30.2
のようにlon latが一覧化されていて、
テーブルファイルを基に、あるディレクトリ内のpklファイルを取得したいと思っています。
ただ、ファイル名は小数点以下6位まであるので、テーブルファイルの型をstr(object)に直し、
検索をかけれるようにしたつもりなのですが、エラーが出てしまい、検索までたどり着くことができません。。
- 発生している問題・エラーメッセージ
文字コード変換は
df["lat"] = df["lat"].astype("str")
で普通に型変換し、df.info()でobject型になっていることを確認していますが、
その次に
df["lon"].apply(lambda x: '{:.6f}'.format(x))
で、小数点以下6位まで指定してやると
「ValueError: Unknown format code 'f' for object of type 'str'」というエラーがでます。
列全体数字しか入っていないので、なぜこういうエラーが出るのかわかりません・・
また、小数点以下6位までに設定できたら、その先の予定で、
lon = df.iat[1, 0]
lat = df.iat[1, 1]
df_test = pd.read_pickle("../directry/('{}','{}').pkl".format(lon, lat))
df_test
のようなコードを基にfor文でテーブルの1000行を一括で検索をかけたいと思っていますが、これで果たしてできるのか、
という所も試せないので焦っています・・
- 該当のソースコード
Jupyterで書いているので、空行の部分でcellがわかれています。
ーー
import pandas as pd
import pickle
import csv
#テーブル読み込み
df = pd.read_csv("../table.csv")
df["lon"] = df["lon"].astype("str")
df["lat"] = df["lat"].astype("str")
df["lon"].apply(lambda x: '{:.6f}'.format(x))
df["lat"].apply(lambda x: '{:.6f}'.format(x))
→ValueError: Unknown format code 'f' for object of type 'str'
lon = df.iat[1, 0]
lat = df.iat[1, 1]
df_test = pd.read_pickle("../directry/('{}','{}').pkl".format(lon, lat))
df_test
わかる方に是非ご助言頂きたいです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー