を照会たちは、私が辞書にCLIENT_ID、PROPERTY_ID、FROM_YEARの各ユニークな組み合わせを渡すためにしようとしていますので、私はできるCSVのpythonパンダループにデータの3列のペアを渡すとMySQLが
PROPERTY_ID,CLIENT_ID,FROM_YEAR
1,5,2015
2,6,2015
3,9,2015
4,9,2015
を持っていると仮定しますMySQLの問い合わせに "PROPERTY_ID、CLIENT_ID、FROM_YEAR" ペアを置く:
for i in CLIENT_ID
do
connect to MySQL
SELECT * FROM DATABASE_${CLIENT_ID}.TABLE WHERE PROPERTY IN ${PROPERTY_ID} AND FROM_YEAR = ${FROM_YEAR};
disconnect to MySQL
done
実数ように、ではないパラメータ:
for i in CLIENT_ID
do
connect to MySQL
SELECT * FROM DATABASE_9.TABLE WHERE PROPERTY IN ('3','4') AND FROM_YEAR = 2015;
disconnect to MySQL
done
今、私は考えることができるソリューションが辞書にPythonのパンダフレームを変換することです:
df=pd.read_csv('test.csv')
df2=df.T.to_dict('list')
しかし、それは興味深いキーの辞書を返します。値のペア:
インデックス:(CLIENT_ID、PROPERTY_ID 、FROM_YEAR)
{0: [5, 1,2015], 1: [6, 2,2015], 2: [9, 3,2015], 3: [9, 4,2015]}
さらに簡単な解決方法はありますか?
< < < < < < < < < < < < < < < < < < < < >>>>>>>>>>>>>>>>>>>>>>>>>>
こんにちは@piRSquared、
にあなたの答えをありがとう>>>>>。私たちが次のことをする方法はありますか?
1st round:
$CLIENT_ID,$PROPERTY_ID,$FROM_YEAR=5,1,2015
2nd round
$CLIENT_ID,$PROPERTY_ID,$FROM_YEAR=6,2,2015
3rd round
$CLIENT_ID,$PROPERTY_ID,$FROM_YEAR=9,3,2015
4th round
$CLIENT_ID,$PROPERTY_ID,$FROM_YEAR=9,4,2015
我々のようなSQLクエリをプリントアウトすることができるように:
for CLIENT_ID in [x[0] for x in df2]:
CLIENT_ID=CLIENT_ID.astype('str')
print "SELECT * FROM client"+CLIENT_ID
for PROPERTY_CODE in [y[1] for y in df2]:
PROPERTY_CODE=PROPERTY_CODE.astype('str')
print "WHERE PROPERTY_ID = "+PROPERTY_CODE
が、それは次のように返し、我々が探しているではありません。
SELECT * FROM client_5 WHERE PROPERTY_ID = 1 and FROM_YEAR = 2015;
SELECT * FROM client_6 WHERE PROPERTY_ID = 2 and FROM_YEAR = 2015;
SELECT * FROM client_9 WHERE PROPERTY_ID = 3 and FROM_YEAR = 2015;
私は、リストの内包表記を使用しようとしましたfor:
SELECT * FROM client_5
WHERE FK_PROPERTY_ID = 1
WHERE FK_PROPERTY_ID = 2
WHERE FK_PROPERTY_ID = 3
WHERE FK_PROPERTY_ID = 4
啓発できますか?ありがとう。
drop_duplicates
ループ内で接続/切断を持ってひどく遅いです! –