実現したいこと
こちらの関連質問です。
C.csvは以下のようなファイルです。
0 0 2 3 0
Cの、0でない要素値だけを取り出した行列をAとすると、A.csvは以下のようなファイルです。
2 3
Cの、要素値0である場所を示したファイルをB.csvとします。
0 1 4
今、AとBからCを復元したいと思っています。「該当のソースコード」ではエラーが出てしまいました。どなたか直してください。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "〇〇〇teratail.py", line 8, in <module> A.insert(B[i],str(i),0) ~~~~~~~~^^^^^^^^^^^^^^^ File "〇〇〇\pandas\core\frame.py", line 5182, in insert raise TypeError("loc must be int") TypeError: loc must be int
該当のソースコード
python
1import numpy as np 2import pandas as pd 3 4A = pd.read_csv("A.csv",header=None) 5B = pd.read_csv("B.csv",header=None) 6 7for i in range(len(B)): 8 A.insert(B[i],str(i),0) 9 10np.savetxt("C.csv", A, delimiter=",")
試したこと
詳細は書けませんが、別のプログラム中の以下のソースは正しく動きました。そのため、これを真似して「該当のソースコード」は書いたものですが、なぜか正しく動作しませんでした。AとBの型の問題かと予想しています。
python
1for i in range(len(col_idx)): 2 R3restore.insert(col_idx[i],str(i),0)
回答3件
あなたの回答
tips
プレビュー