생성 된 SQL select 문에서 필드를 사용하기 위해 데이터 프레임에 csv 파일을 읽으려고합니다. 데이터는 다음과 같습니다은 데이터 프레임의 행을 반복합니다.
0 1 2 3 4 5 6
0 status1 A0 NaN NaN 3 Customer1 customer Id
1 status2 A1 NaN NaN 3 Customer2 customer Id
2 status3 A2 NaN 1253 3 Customer3 customer Id
3 status4 A3 27.0 L0 12 Customer4 customer Id
4 status5 A3 30.0 NaN 12 Customer5 customer Id
을 각 행을 통해 내가 루프는 문자열에 필드를 삽입하려고하면
for row in M:
print("(Select '{}' as disposition, '{}' as category_code, '{}' as status_code, '{:02f}' as Payer_reason_code, {} as precedence, {} as source_id, '{}' as reco_id) union"
.format(M[row][0], M[row][1], M[row][2], M[row][3], M[row][4], M[row][5], M[row][6]))
이 오류가 발생합니다 :
line 14, in print("(Select '{}' as disposition, '{}' as category_code, '{}' as status_code, '{:02f}' as Payer_reason_code, {} as precedence, {} as source_id, '{}' as reco_id) union".format(M[row][0], M[row][1], M[row][2], M[row][3], M[row][4], M[row][5], M[row][6])) IndexError: arrays used as indices must be of integer (or boolean) type
방법 numpy 2d 배열을 통해 루프를 수행합니까?
import pandas as pd
import os
import numpy as np
path = '../resources'
X = pd.read_csv('../resources/data.csv', header=None).as_matrix()
for row in X:
print("(Select '{}' as disposition, '{}' as category_code, '{}' as status_code, '{:02f}' as Payer_reason_code, {} as precedence, {} as source_id, '{}' as reco_id) union".format(X[row][0], X[row][1], X[row][2], X[row][3], X[row][4], X[row][5], X[row][6]))
이것은 팬더가 아닙니다. –
numpy를 원하면'X.values'를 사용하십시오. –
[pandas dataframe을 통한 루핑] 가능한 중복 (0120)을 참조하십시오. –