手順 here および here を実行しましたが、pandas dataframeにデータフレームをアップロードできませんでした。
最初に私は次のコードを試しました:
import gspread
from google.oauth2.service_account import Credentials
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
credentials = Credentials.from_service_account_file('my_json_file_name.json', scopes=scope)
gc = gspread.authorize(credentials)
spreadsheet_key = '1FNMkcPz3aLCaWIbrC51lgJyuDFhe2KEixTX1lsdUjOY'
wks_name = 'Sheet1'
d2g.upload(df_qrt, spreadsheet_key, wks_name, credentials=credentials, row_names=True)
上記のコードは、次のようなエラーメッセージを返します:AttributeError: module 'df2gspread' has no attribute 'upload'
これは、df2spreadに実際にuploadという関数があるため、意味がありません。
次に、列名を入力するだけで、Googleシートで人工的に作成したデータフレームにデータを追加しようとしました。これも機能せず、結果も得られませんでした。
import gspread_dataframe as Gd
ws = gc.open("name_of_file").worksheet("Sheet1")
existing = Gd.get_as_dataframe(ws)
updated = existing.append(df_qrt)
Gd.set_with_dataframe(ws, updated)
どんな助けでも感謝します、ありがとう!
パッケージを正しくインポートしていません。
これをしてください
from df2gspread import df2gspread as d2g
を使用してワークシートをデータフレームに変換するとき
existing = Gd.get_as_dataframe(ws)
シートのすべての空白の列と行は、NaNとしての値を持つデータフレームの一部になりました。そのため、別のデータフレームに追加しようとすると、列が一致しないため、追加されません。代わりにこれを試して、ワークシートをデータフレームに変換します
existing = pd.DataFrame(ws.get_all_records())
Googleスプレッドシートでデータフレームをエクスポートすると、データフレームのインデックスが最初の列に格納されます(私の場合は、確信が持てません)。最初の列がインデックスの場合、次を使用して列を削除できます
existing.drop([''],axis=1,inplace=True)
その後、これは正しく動作します。
updated = existing.append(df_qrt)
Gd.set_with_dataframe(ws, updated)