生成された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ではありません。 –
numpyが必要な場合は、 'X.values'を使います。 –
[pandasデータフレームをループする]の複製があります(http://stackoverflow.com/questions/34958526/looping-through-a-pandas-dataframe) –