如何将 Google Sheet 的行导入 Pandas,但带有列名?

How do I import rows of a Google Sheet into Pandas, but with column names?

很多地方都有很好的说明,可以使用 gspread 将 Google Sheet 导入 Pandas DataFrame,例如:

# Open our new sheet and read some data.
worksheet = gc.open_by_key('...').sheet1

# get_all_values gives a list of rows.
rows = worksheet.get_all_values()

# Convert to a DataFrame and render.
import pandas as pd
df = pd.DataFrame.from_records(rows)
df.head()

问题在于此导入将第一行视为值而不是 header。

如何导入 DataFrame 并将第一行视为列名而不是值?

你可以做到

row=[[1,2,3,4]]*3
pd.DataFrame.from_records(row[1:],columns=row[0])
   1  2  3  4
0  1  2  3  4
1  1  2  3  4

我遇到了同样的问题 - 我没有通过 get_all_values() 获取列表列表,而是将其更改为 get_all_records() 并且 headers 列填充得很好。

for sheet in sheet_names:
   worksheet = sh.worksheet(sheet)
   rows = pd.DataFrame(worksheet.get_all_records())
   database = pd.concat([database, rows])