pythonのpandasを使用して、元となるデータの一覧表csvファイル(all_date.csv)から値を抽出し、list.csvのcost欄に値を書き込みたいと考えております。
元のデータ一覧表csvの中身↓
[car,buildings,cost][1,23,0.267][2,23,0.565][3,23,1.7625][1,54,0.65712][2,54,0.9836][3,54,0.234]......
car :1~3
buildings :連番ではない(かなりのデータ数ある)
であり、list.csv(中身は以下に記述)がある時に、元データのbuildingsとlist.csvのbuildings(二つのbuildingsは対応している)からlist.csvのcostを埋めるにはmergeで対応できるかと思います。
list.csv[buildings,time,cost][23,0.65, ][54,0.345, ].....
python
1import pandas as pd 2 3df = pd.read_csv("all_date.csv") 4df2 = pd.read_csv("list.csv") 5results = df.merge(df2,on="buildings") 6
ここから質問になるのですが、
①list.csvを[buildings,time,total_cost]としてtotal_cost=time+(元ファイルの)costとしたときにはどのように変更すればよろしいでしょうか。
②また、total_costを計算する為のcostはall_date.csvのbuildingsが同一でcarが異なるcostの3つのうち(最も小さいcostを用いることを原則とするが、使用できるcarの数に制限(car:1は1回のみ,car:2は2回,car:3は2回使用可能)がある時に、最小のcostを持つcarが制限数使われていた場合に最も小さいcostではなく、2番目に小さなcostを使用、3番目に小さなcostを使用するといった時にどのように変更したらよろしいでしょうか。
list.csvにはデータが30ほどあり、carの数(5台)を考えると、total_costを計算できるのは5つだけになります。計算できる5つをどのように決めるかは、list.csvのtimeが小さい順として考えています。
最終的にはlist.csvはlist1.csv~list1000.csvのように複数ファイルで同一のことをやりたいと考えております。
上記二点についてご教授いただけましたら、幸いです。
よろしくお願いいたします。
あなたの回答
tips
プレビュー