[英]Upload a Pandas DataFrame as Excel file directly to Google Drive using PyDrive
我正在尝试将pandas.DataFrame
直接写入Google云端硬盘,而无需先将文件写入本地。 我找不到解决方案,也不确定它是否可行。 我已经尝试了下面的代码,但是我得到了一个AttributeError
。
import pandas as pd
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LoadCredentialsFile(mycreds)
drive = GoogleDrive(gauth)
df = pd.DataFrame({'a':[1,2],'b':[2,3]})
f = drive.CreateFile({'id': '0B_6_uVX9biFuX0FJWFkt'}) #test.xlsx file
f.SetContentString(df)
f.Upload()
AttributeError:'DataFrame'对象没有属性'encode'
可以让pandas
将Excel文件直接写入字符串,如:
wb = Workbook()
writer = pd.ExcelWriter('', engine='openpyxl')
writer.book = wb
df.to_excel(writer)
file_as_string = save_virtual_workbook(wb)
以上代码结合您的示例。 请注意,此部分未经测试。
import pandas as pd
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
gauth.LoadCredentialsFile(mycreds)
drive = GoogleDrive(gauth)
df = pd.DataFrame({'a': [1, 2], 'b': [2, 3]})
from openpyxl.workbook import Workbook
from openpyxl.writer.excel import save_virtual_workbook
wb = Workbook()
writer = pd.ExcelWriter('', engine='openpyxl')
writer.book = wb
df.to_excel(writer)
f = drive.CreateFile({'id': '0B_6_uVX9biFuX0FJWFkt'}) #test.xlsx file
f.SetContentString(save_virtual_workbook(wb))
f.Upload()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.