This code gives me what I am looking for. But I'm just thinking how I can streamline the if
statements because I would be repeating myself a couple of times, and that's not really good isn't it?
import requests
import pandas
from sqlalchemy import create_engine
import os
import numpy
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By
def _format_data_frame(dataframe_source, df_id):
"""Format the dataframe source that is retrieved from 'my_function()' and put into SQL"""
for each_dataframe in dataframe_source: # Formatting the columns
if "Unnamed: 2" in each_dataframe.columns:
each_dataframe.drop(each_dataframe.index[0], inplace=True)
each_dataframe.rename(columns={"Fare Per Ride (cent)": "Card", "Unnamed: 2": "Cash"}, inplace=True)
if "Card Fare Per Ride (cent)" in each_dataframe.columns:
each_dataframe.rename(columns={"Card Fare Per Ride (cent)": "Card"}, inplace=True)
if "Card Fare (cent)" in each_dataframe.columns:
each_dataframe.rename(columns={"Card Fare (cent)": "Card"}, inplace=True)
if "Description" in each_dataframe.columns:
each_dataframe.rename(columns={"Description": "Distance"}, inplace=True)
# Each dataframe_source has a total of 5 dataframes extracted.
# I don't need the last dataframe, and this portion is just to separate the dataframes out.
truck_services = dataframe_source[0]
feeder_services = dataframe_source[1]
express_services = dataframe_source[2]
other_services = dataframe_source[3]
### How can I streamline the below code? ###
if df_id == "df1":
engine = create_engine("sqlite:///abc.db", echo=False)
connection = engine.connect()
pandas.DataFrame.to_sql(truck_services, name="Truck Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(feeder_services, name="Feeder Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(express_services, name="Express Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(other_services, name="Other Services", con=engine, if_exists="append")
connection.close()
if df_id == "df2":
engine = create_engine("sqlite:///defg_Fares.db", echo=False)
connection = engine.connect()
pandas.DataFrame.to_sql(truck_services, name="Truck Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(feeder_services, name="Feeder Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(express_services, name="Express Services", con=engine, if_exists="append")
pandas.DataFrame.to_sql(other_services, name="Other Services", con=engine, if_exists="append")
connection.close()
if df_id == "df3":
engine = create_engine("sqlite:///hijk_Fares.db", echo=False)
## Same thing
connection = engine.connect()
if df_id == "df4":
engine = create_engine("sqlite:///lmno_Fares.db", echo=False)
## Same thing
connection = engine.connect()
if df_id == "df5":
engine = create_engine("sqlite:///pqr_Fares.db", echo=False)
## Same thing
connection = engine.connect()