Gspread 的多个电子表格
Multiple Spreadsheets with Gspread
我是 Python 的新手,我正在使用 gspread 和 Google Sheets。我有几个电子表格,我想从中提取数据。它们都具有相同的名称并附加了数值(例如,SpreadSheet(1)、SpreadSheet(2)、SpreadSheet(3) 等)
我想解析每个电子表格,提取数据,并用数据生成一个数据框。我可以用一个电子表格很容易地做到这一点,但我很难用多个电子表格来做到这一点。
我可以使用下面的代码创建电子表格标题列表,但我不确定这是否是正确的方向。
titles_list = []
for spreadsheet in client.openall():
titles_list.append(spreadsheet.title)
我相信你的目标如下。
- 您想将从所有 sheet 中检索到的值合并到 Google Spreadsheet.
中
- 您想将检索到的值转换为数据框。
- 每个 sheet 有 4 列,100 行,没有 header 行。
- 您想使用带有 python 的 gspread 来实现此目的。
- 您已经能够使用 Sheets API.
获取和放置 Google Spreadsheet 的值
为此,这个答案怎么样?
流量:
- 使用
worksheets()
. 检索 Google Spreadsheet 中的所有 sheet
- 使用
get_all_values()
从所有 sheet 中检索所有值并合并这些值。
- 将检索到的值转换为数据框。
示例脚本:
spreadsheetId = "###" # Please set the Spreadsheet ID.
client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheets = spreadsheet.worksheets()
values = []
for ws in worksheets:
values.extend(ws.get_all_values())
df = pd.DataFrame(values)
print(df)
参考文献:
在这里混合使用您的起始代码和@Tanaike 的回答,您将得到一段代码,可以满足您的期望。
# Create an authorized client
client = gspread.authorize(credentials)
# Create a list to hold the values
values = []
# Get all spreadsheets
for spreadsheet in client.openall():
# Get spreadsheet's worksheets
worksheets = spreadsheet.worksheets()
for ws in worksheets:
# Append the values of the worksheet to values
values.extend(ws.get_all_values())
# create df from values
df = pd.DataFrame(values)
print(df)
希望我说清楚了。
我是 Python 的新手,我正在使用 gspread 和 Google Sheets。我有几个电子表格,我想从中提取数据。它们都具有相同的名称并附加了数值(例如,SpreadSheet(1)、SpreadSheet(2)、SpreadSheet(3) 等)
我想解析每个电子表格,提取数据,并用数据生成一个数据框。我可以用一个电子表格很容易地做到这一点,但我很难用多个电子表格来做到这一点。
我可以使用下面的代码创建电子表格标题列表,但我不确定这是否是正确的方向。
titles_list = []
for spreadsheet in client.openall():
titles_list.append(spreadsheet.title)
我相信你的目标如下。
- 您想将从所有 sheet 中检索到的值合并到 Google Spreadsheet. 中
- 您想将检索到的值转换为数据框。
- 每个 sheet 有 4 列,100 行,没有 header 行。
- 您想使用带有 python 的 gspread 来实现此目的。
- 您已经能够使用 Sheets API. 获取和放置 Google Spreadsheet 的值
为此,这个答案怎么样?
流量:
- 使用
worksheets()
. 检索 Google Spreadsheet 中的所有 sheet
- 使用
get_all_values()
从所有 sheet 中检索所有值并合并这些值。 - 将检索到的值转换为数据框。
示例脚本:
spreadsheetId = "###" # Please set the Spreadsheet ID.
client = gspread.authorize(credentials)
spreadsheet = client.open_by_key(spreadsheetId)
worksheets = spreadsheet.worksheets()
values = []
for ws in worksheets:
values.extend(ws.get_all_values())
df = pd.DataFrame(values)
print(df)
参考文献:
在这里混合使用您的起始代码和@Tanaike 的回答,您将得到一段代码,可以满足您的期望。
# Create an authorized client
client = gspread.authorize(credentials)
# Create a list to hold the values
values = []
# Get all spreadsheets
for spreadsheet in client.openall():
# Get spreadsheet's worksheets
worksheets = spreadsheet.worksheets()
for ws in worksheets:
# Append the values of the worksheet to values
values.extend(ws.get_all_values())
# create df from values
df = pd.DataFrame(values)
print(df)
希望我说清楚了。