如何将 gspread api 中的数据格式化为 Google 表格
How can I format data from gspread api into Google Sheets
我是 python(和一般编程)的新手。我目前正在致力于自动化我工作的数据输入方面。到目前为止,我已经弄清楚如何使用 pandas 从 csv 中整理出我想要的数据,并使用 gspread api 将其加载到 google 电子表格的适当区域。我的问题是 csv 数据转储到电子表格的单个单元格中。我怎样才能让它进入整排单元格?我已经尝试了 .appendrow() 函数的每个参数。
非常感谢 - 欧文 K
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("/Users/macbook/Documents/Atom Projects/Sheets1/creds.json", scope)
client = gspread.authorize(creds)
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna].to_csv()
print(LU)
bick4 = client.open("Test Sheet") .worksheet('bick 4')
bick4.append_row([LU])
我相信你的目标如下。
- 您想将
LU = df[Luna].to_csv()
的值放入 Google 电子表格中的每个单元格。
- 您想使用带有 python 的 gspread 来实现此目的。
- 您已经能够使用表格获取和放置值 API。
为此,这个答案怎么样?
修改点:
- 在这种情况下,从
df[Luna]
创建一个列表,然后使用 gspread 将该列表放入电子表格。
我提出以下两种模式。
模式一:
在此模式中,使用 values_update
的方法将 df[Luna]
的值放入电子表格。
示例脚本:
client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]
values = [LU.columns.values.tolist()]
values.extend(LU.values.tolist())
spreadsheet.values_update(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})
模式二:
在此模式中,使用 values_update
的方法将 df[Luna]
的值放入电子表格。
示例脚本:
client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]
values = LU.values.tolist()
spreadsheet.values_append(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})
参考文献:
我是 python(和一般编程)的新手。我目前正在致力于自动化我工作的数据输入方面。到目前为止,我已经弄清楚如何使用 pandas 从 csv 中整理出我想要的数据,并使用 gspread api 将其加载到 google 电子表格的适当区域。我的问题是 csv 数据转储到电子表格的单个单元格中。我怎样才能让它进入整排单元格?我已经尝试了 .appendrow() 函数的每个参数。
非常感谢 - 欧文 K
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("/Users/macbook/Documents/Atom Projects/Sheets1/creds.json", scope)
client = gspread.authorize(creds)
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna].to_csv()
print(LU)
bick4 = client.open("Test Sheet") .worksheet('bick 4')
bick4.append_row([LU])
我相信你的目标如下。
- 您想将
LU = df[Luna].to_csv()
的值放入 Google 电子表格中的每个单元格。 - 您想使用带有 python 的 gspread 来实现此目的。
- 您已经能够使用表格获取和放置值 API。
为此,这个答案怎么样?
修改点:
- 在这种情况下,从
df[Luna]
创建一个列表,然后使用 gspread 将该列表放入电子表格。
我提出以下两种模式。
模式一:
在此模式中,使用 values_update
的方法将 df[Luna]
的值放入电子表格。
示例脚本:
client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]
values = [LU.columns.values.tolist()]
values.extend(LU.values.tolist())
spreadsheet.values_update(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})
模式二:
在此模式中,使用 values_update
的方法将 df[Luna]
的值放入电子表格。
示例脚本:
client = gspread.authorize(creds)
spreadsheet = client.open('Test Sheet')
sheet_name = 'bick 4'
import pandas as pd
df = pd.read_csv('/Users/macbook/Documents/Atom Projects/Sheets1/report.csv')#, index_col = '(Child) ASIN')
Luna = (df['(Child) ASIN'] == 'B0716JTGSX')
LU = df[Luna]
values = LU.values.tolist()
spreadsheet.values_append(sheet_name, params={'valueInputOption': 'USER_ENTERED'}, body={'values': values})