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

質問編集履歴

1

変更

2020/07/04 04:13

投稿

pon244
pon244

スコア59

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  Pivot_Grp["Growth"]=Pivot_Grp['Served']['2020-06-27']-Pivot_Grp['Served']['2020-06-20']
8
8
 
9
9
  Pivot_Grp.sort_values('Growth',ascending=False).round().head(50)
10
- Data=Pivot_Grp.sort_values('Growth',ascending=False).round().head(50)
10
+ iris=Pivot_Grp.sort_values('Growth',ascending=False).round().head(50)
11
11
  #GSの設定
12
12
  import pandas as pd
13
13
  import gspread
@@ -30,8 +30,7 @@
30
30
  #共有設定したスプレッドシートのワークシート1を開く
31
31
  worksheet = gc.open_by_key(SPREADSHEET_KEY).sheet1
32
32
 
33
- # 数字からアルファベットを返関数
33
+ # GoogleSheetに書き出
34
- # 例:26→Z、27→AA、10000→NTP
35
34
  def toAlpha(num):
36
35
  if num<=26:
37
36
  return chr(64+num)
@@ -40,12 +39,16 @@
40
39
  else:
41
40
  return toAlpha(num//26)+chr(64+num%26)
42
41
 
43
- col_lastnum = len(data.columns) # DataFrameの列数
44
- row_lastnum = len(data.index) # DataFrameの行数
45
-
46
- cell_list = worksheet.range('A1:'+toAlpha(col_lastnum)+str(row_lastnum))
42
+ cell_list = worksheet.range('A1:'+toAlpha(col_lastnum+1)+str(row_lastnum+1))
47
43
  for cell in cell_list:
44
+ if cell.col == 1 and cell.row == 1:
45
+ val = ''
46
+ elif cell.col == 1:
47
+ val = iris.index[cell.row-2]
48
+ elif cell.row == 1:
49
+ val = iris.columns[cell.col-2]
50
+ else:
48
- val = iris.iloc[cell.row-1][cell.col-1]
51
+ val = iris.iloc[cell.row-2][cell.col-2]
49
52
  cell.value = val
50
53
  worksheet.update_cells(cell_list)
51
54
  ```
@@ -53,8 +56,7 @@
53
56
  ![イメージ説明](7953ee65ec1660067031778eb9d7e23d.png)
54
57
 
55
58
  【エラーメッセ】
56
- Object of type int64 is not JSON serializable
59
+ index 3 is out of bounds for axis 0 with size 3
57
- そして、成功した時には、コラムの部分(Servedの数字のみ)シートにいきました。
58
60
 
59
61
  【したいこと】
60
62
  Pivotで作ったDataFrameをIndex、コラムをそのままシートに移動したいです。