Search code examples
pythonpandasdataframegoogle-sheetsgspread

Appending pandas Data Frame to Google spreadsheet


Case: My script returns a data frame that needs has to be appended to an existing google spreadsheet as new rows of data.As of now, I'm appending a data frame as multiple single rows through gspread.

My Code:

import gspread
import pandas as pd
df = pd.DataFrame()

# After some processing a non-empty data frame has been created.

output_conn = gc.open("SheetName").worksheet("xyz")

# Here 'SheetName' is google spreadsheet and 'xyz' is sheet in the workbook

for i, row in df.iterrows():
    output_conn.append_row(row)

Is there a way to append entire data-frame rather than multiple single rows?


Solution

  • I can recommend gspread-dataframe:

    import gspread_dataframe as gd
    
    # Connecting with `gspread` here
    
    ws = gc.open("SheetName").worksheet("xyz")
    existing = gd.get_as_dataframe(ws)
    updated = existing.append(your_new_data)
    gd.set_with_dataframe(ws, updated)