こちらの質問に関連してます。前回質問
今回は下記コードのquery1で取得したluidという列を格納しているrow_data1の中身をrow_data2の左側に結合させたいです。
データフレーム格納時に結合する良い方法が見つけられず、アドバイスを頂けると幸いです。
よろしくお願いします。
pandas(df1,df2,axis=1)を試した結果
luid,Q1_start
の様にQ2以降をデータに入れられませんでした。
index.py import urllib.request import urllib.parse from google.cloud import bigquery from flask import Flask,request,jsonify,Response import re import pandas as pd import json app = Flask(__name__) @app.route('/') def createCsv(): client = bigquery.Client() tableName = request.args.get('tableName') or '' tagName = request.args.get('tagName') or '' tag_list = [] if "Q" in tagName: nums = re.sub("\D", "", tagName) nums = int(nums) + 1 df_list1 = [] df_list2 = [] query1 = "SELECT luid FROM test_project.testdataset.{0}".format(tableName) df1 = client.query(query1).to_dataframe() for num in reversed(range(1,int(nums))): query2 = "SELECT Q{0}_start FROM test_project.testdataset.{1}".format(num,tableName) df2 = client.query(query2).to_dataframe() df_list2.insert(0, df2) df_all2 = pd.concat(df_list2, axis=1) df_list1.insert(0,df1) df_all1 = pd.concat(df_list1, axis=1) row_data1 = df_all1.to_csv(sep=',', index=False) row_data2 = df_all2.to_csv(sep=',', index=False) response = Response(row_data1) response.headers['Access-Control-Allow-Origin'] = '*' return response else: return "" if __name__ == "__main__": app.run(debug=True)
row_data1出力結果 luid X********** X********** X********** row_data2出力結果 Q1_start,Q2_start,Q3_start 1,1,10 1,0,1,0 0,0,0,0 理想の形 luid,Q1_start,Q2_start,Q3_start X**********,1,1,10 X**********,1,0,1,0 X**********,0,0,0,0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。