質問するログイン新規登録

回答編集履歴

3

コードの誤り修正

2021/02/09 11:50

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -28,5 +28,5 @@
28
28
  df_lis.insert(0, df)
29
29
  # df.shift(-1, axis=1)
30
30
  df_all = pd.concat(df_list, axis=1)
31
- df.to_csv(file0, sep='\t')
31
+ df_all.to_csv(file0, sep='\t')
32
32
  ```

2

ミス修正

2021/02/09 11:50

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -28,5 +28,5 @@
28
28
  df_lis.insert(0, df)
29
29
  # df.shift(-1, axis=1)
30
30
  df_all = pd.concat(df_list, axis=1)
31
- df.to_csv(file0, sep='\t')gyo2,d3,d4
31
+ df.to_csv(file0, sep='\t')
32
32
  ```

1

コード追加

2021/02/09 11:24

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -1,2 +1,32 @@
1
- forループの中ではDataFrameを[pandas.DataFrame, Seriesを連結するconcat](https://note.nkmk.me/python-pandas-concat/)を使って横向きに連結していき、
1
+ forループの中ではDataFrameを貯めておき、forループを抜けてから[pandas.DataFrame, Seriesを連結するconcat](https://note.nkmk.me/python-pandas-concat/)を使って横向きに連結してdf.to_csv を一回だけ行えば良と思います。
2
+
3
+ 動作確認はできませんが、以下のような感じです。
4
+
5
+ ```python
6
+ def fun1():
7
+ file0 = "./test.csv"
8
+ client = bigquery.Client()
9
+ tableName = "test2"
10
+ tagName = "msajhdh5awiQ"
11
+ tag_list = []
12
+ if "Q" in tagName:
13
+ nums = re.sub("\D", "", tagName)
14
+
15
+ df_list = []
16
+ for num in reversed(range(1,int(nums))):
17
+ query = "SELECT Q{0}_start FROM `test_table.{1}`".format(num,tableName)
18
+
19
+ job_config = bigquery.QueryJobConfig(
20
+ query_parameters=[
21
+ bigquery.ScalarQueryParameter("tableName", "STRING", tagName),
22
+ bigquery.ScalarQueryParameter("tagName", "STRING", tagName)
23
+ ]
24
+ )
25
+
26
+ query_job = client.query(query)
27
+ df = query_job.result().to_dataframe()
28
+ df_lis.insert(0, df)
29
+ # df.shift(-1, axis=1)
30
+ df_all = pd.concat(df_list, axis=1)
2
- df.to_csv はforループを抜けてから一回だけ行えば良いと思います。
31
+ df.to_csv(file0, sep='\t')gyo2,d3,d4
32
+ ```