2つのエクセルデータがあり、両方ともDEに位置情報(400×400)が書いてあります。
1つはすべてのデータと位置情報(D0~400)があります。(the package.csvとおく)
2つは特定のデータと位置情報があります。(newinsidepackage.csvとおく)
その上で今回はDEの位置情報に当てはまる2つ目のnewinsidepackage.csvのデータを1つ目に入れて新しいエクセルファイルを作成するプログラムを考えています。(例えば2つ目のデータの1番目がD=41 E=291のですので1つ目のデータの16692番目のところが書き換えられる仕組みにしたいと考えています。)
inpackage_img = np.loadtxt("newinside package.csv",delimiter = ",", dtype = float) package_img = np.loadtxt("the package.csv",delimiter = ",", dtype = float) for d in range (len(inpackage_img)): for i in range(len(package_img)): if (inpackage_img[d][3]== package_img[i][3]) and (inpackage_img[d][3]== package_img[i][4]): package_img[i][0] = inpackage_img[d][0] package_img[i][1] = inpackage_img[d][1] package_img[i][2] = inpackage_img[d][2] else: pass with open('new package.csv', 'w',newline='') as f: for h in range (len(package_img)): writer.writerow([package_img[h][0],package_img[h][1],package_img[h][2]]) f.close
上記のコードのようにDEの位置情報をそれぞれfor文でまわして一致しているところを2つ目のデータを1つ目のデータに入れて更新する形で作っていますが、繰り返すデータ数が多すぎて実行完了するまでに2時間近くかかってしまいます。
そこでfor文以外で簡単に2つのエクセルを結合して新しいエクセルファイルを作れる方法を探しています。
どなたかアドバイスをいただけないでしょうか?
回答2件
あなたの回答
tips
プレビュー