def remove_keys(sheet: Worksheet, keys: List[str]): rows = [] _remove_keys = [] col_num = get_id_field_cell(sheet).col for k in keys: try: cell = sheet.find(k, in_column=col_num) rows.append(cell.row) _remove_keys.append(k) except Exception as e: pass if rows: sheet.delete_rows(rows) print(f'remove {len(rows)} keys') print(_remove_keys)
def gsheet_read(worksheet: gspread.Worksheet) -> pandas.DataFrame: """ Read the specified worksheet directly into a DataFrame and remove rows, where no ID is given. """ if not worksheet: return pandas.DataFrame() dataframe = pandas.DataFrame(worksheet.get_all_records(), dtype=str) if len(dataframe.index) == 0: return pandas.DataFrame(columns=GSHEET_HEADER) # Remove rows where the ID is missing empty_rows = dataframe[dataframe['id'] == ''] if len(empty_rows.index) > 0: for row in empty_rows.index: worksheet.delete_rows(start_index=row + 2) dataframe.drop(index=row, inplace=True) dataframe.reset_index(drop=True, inplace=True) return dataframe