前提
・CSVをPandasDataFlameで読み込んだのですが、値がclass'str' なので、floatにしたい
実現したいこと
前提はreplace関数でクリアできました。
下記質問です。
CSVの全行をreplaceするには、for文を用いると思うのですが、現在下記のようなコードで処理を行っています。
該当のソースコード
python
1 2class AdjustDataFlame: 3 def __init__(self, df): 4 self.df = df 5 6 def Return_All_Data(self): 7 8 #ここから1つ目のリスト 9 self.a = [ 10 self.df.iat[0,0].replace(",",""),# 30,737.77 11 float(self.df.iat[0,1].replace(",","")),#30,737.77 12 float(self.df.iat[0,2].replace(",","")),# 30,737.77 13 float(self.df.iat[0,3].replace(",","")),# 30,737.77 14 float(self.df.iat[0,4].replace(",","")),# 30,737.77 15 float(self.df.iat[0,5].replace(",","")),# 30,737.77 16 ] 17 # ここから2つ目のリスト 18 self.b = [ 19 self.df.iat[1,0].replace(",",""),# 30,737.77 20 float(self.df.iat[1,1].replace(",","")),#30,737.77 21 float(self.df.iat[1,2].replace(",","")),# 30,737.77 22 float(self.df.iat[1,3].replace(",","")),# 30,737.77 23 float(self.df.iat[1,4].replace(",","")),# 30,737.77 24 float(self.df.iat[1,5].replace(",","")),# 30,737.77 25 ] 26 27 #一度リストに渡す 28 l = [self.a,self.b] #一回リストに渡す 29 30 #合わせたDataFlameを作成 31 self.df4 = pd.DataFrame(l) 32 print(self.df4) 33 34a = AdjustDataFlame(df) 35a.Return_All_Data() 36 37>>> 38 0 1 2 3 4 5 390 2022/7/1 30737.77 31139.35 30487.79 31097.26 310440000.0 401 2022/7/5 30903.12 30971.74 30355.12 30967.82 323080000.0 41<class 'numpy.float64'> 42
試したこと
self.NewDf = self.df.replace(",","")
と一括でできたらよかったのですが、反映されませんでした。
CSVファイルには7000行あり、self.a=[] , self.b = []・・・7000行も書くわけにはいきません。
リスト作ってさらにリストに渡して・・・とよくわからなくなってしまいました。
どなたか、for文で回すアドバイスいただけないでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー