Q- now i want to get the context from my notebook so far ? 

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns




import pandas as pd


path = "data/data.xlsx"
df = pd.read_excel(path)
df = pd.DataFrame(df)
df.head()


df.shape


df.info()



<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7043 entries, 0 to 7042
Data columns (total 33 columns):
 #   Column             Non-Null Count  Dtype  
---  ------             --------------  -----  
 0   CustomerID         7043 non-null   object 
 1   Count              7043 non-null   int64  
 2   Country            7043 non-null   object 
 3   State              7043 non-null   object 
 4   City               7043 non-null   object 
 5   Zip Code           7043 non-null   int64  
 6   Lat Long           7043 non-null   object 
 7   Latitude           7043 non-null   float64
 8   Longitude          7043 non-null   float64
 9   Gender             7043 non-null   object 
 10  Senior Citizen     7043 non-null   object 
 11  Partner            7043 non-null   object 
 12  Dependents         7043 non-null   object 
 13  Tenure Months      7043 non-null   int64  
 14  Phone Service      7043 non-null   object 
 15  Multiple Lines     7043 non-null   object 
 16  Internet Service   7043 non-null   object 
 17  Online Security    7043 non-null   object 
 18  Online Backup      7043 non-null   object 
 19  Device Protection  7043 non-null   object 
 20  Tech Support       7043 non-null   object 
 21  Streaming TV       7043 non-null   object 
 22  Streaming Movies   7043 non-null   object 
 23  Contract           7043 non-null   object 
 24  Paperless Billing  7043 non-null   object 
 25  Payment Method     7043 non-null   object 
 26  Monthly Charges    7043 non-null   float64
 27  Total Charges      7043 non-null   object 
 28  Churn Label        7043 non-null   object 
 29  Churn Value        7043 non-null   int64  
 30  Churn Score        7043 non-null   int64  
 31  CLTV               7043 non-null   int64  
 32  Churn Reason       1869 non-null   object 
dtypes: float64(3), int64(6), object(24)
memory usage: 1.8+ MB


"""
Notice : Total Charges column has a object data type but it is numerical data ,
dp let's change data type for this column


"""
df['Total Charges'] = pd.to_numeric(df['Total Charges'], errors='coerce')

df.describe()


from typing import Iterable, List
def calculate_null_percentage(column: Iterable) -> float:
    """
    Compute the percentage of null values in a dataframe column.
   
    Args:
    column (Iterable): A column from a dataframe
   
    Returns:
    float: The percentage of null values in the column
    """
    total_count = sum(1 for _ in column)
    null_count = sum(1 for value in column if pd.isna(value))
    return (null_count / total_count) * 100 if total_count > 0 else 0


# Now we have calculate_null_percentage(column) as a higher-order function
# We can use it in any dataframe column
# Leveraging the higher-order function principle
# We can use it in any dataframe column
# Type hints have been added to it
percentage_list: List[float] = df.apply(lambda x: calculate_null_percentage(x), axis=0)
percentage_list




CustomerID            0.000000
Count                 0.000000
Country               0.000000
State                 0.000000
City                  0.000000
Zip Code              0.000000
Lat Long              0.000000
Latitude              0.000000
Longitude             0.000000
Gender                0.000000
Senior Citizen        0.000000
Partner               0.000000
Dependents            0.000000
Tenure Months         0.000000
Phone Service         0.000000
Multiple Lines        0.000000
Internet Service      0.000000
Online Security       0.000000
Online Backup         0.000000
Device Protection     0.000000
Tech Support          0.000000
Streaming TV          0.000000
Streaming Movies      0.000000
Contract              0.000000
Paperless Billing     0.000000
Payment Method        0.000000
Monthly Charges       0.000000
Total Charges         0.156183
Churn Label           0.000000
Churn Value           0.000000
Churn Score           0.000000
CLTV                  0.000000
Churn Reason         73.463013
dtype: float64

When dealing with missing values in your dataset, especially in a critical numerical column like "Total Charges", it's essential to approach the issue methodically to ensure the integrity and quality of your analysis. Here's a comprehensive guide on how to handle the approximately 15.6% missing values in the "Total Charges" column.
1. Understand the Nature of Missing Values
Before deciding on a strategy to handle missing data, it's crucial to understand why these values are missing. This understanding can guide you toward the most appropriate imputation method.
a. Inspect Missing Data Patterns
# Check the number of missing values in 'Total Charges'
missing_total_charges = df['Total Charges'].isnull().sum()
print(f"Missing 'Total Charges': {missing_total_charges} out of {df.shape[0]} records")


b. Analyze Correlation with Other Features
It's possible that "Total Charges" is related to other columns in your dataset, such as "Tenure Months" or "Monthly Charges". For instance, new customers with a tenure of 0 months might naturally have missing total charges.
# Exploratory analysis to find patterns in missing 'Total Charges'
missing_tc = df[df['Total Charges'].isnull()]
print(missing_tc[['Tenure Months', 'Monthly Charges']].describe())

# Visualize the relationship
sns.boxplot(x=df['Tenure Months'] == 0, y=df['Total Charges'])
plt.title("Total Charges vs Tenure Months")
plt.show()


2. Potential Strategies to Handle Missing Values
Based on the insights gained from the exploratory analysis, you can choose one or a combination of the following strategies:
a. Impute Based on Related Features
If "Total Charges" is a product of "Monthly Charges" and "Tenure Months", you can impute missing values using these two columns.
# Impute missing 'Total Charges' by multiplying 'Monthly Charges' with 'Tenure Months'
df['Total Charges'] = df['Total Charges'].fillna(df['Monthly Charges'] * df['Tenure Months'])


Q- next 

df.isnull().sum()
CustomerID           0
Count                0
Country              0
State                0
City                 0
Zip Code             0
Lat Long             0
Latitude             0
Longitude            0
Gender               0
Senior Citizen       0
Partner              0
Dependents           0
Tenure Months        0
Phone Service        0
Multiple Lines       0
Internet Service     0
Online Security      0
Online Backup        0
Device Protection    0
Tech Support         0
Streaming TV         0
Streaming Movies     0
Contract             0
Paperless Billing    0
Payment Method       0
Monthly Charges      0
Total Charges        0
Churn Label          0
Churn Value          0
Churn Score          0
CLTV                 0
dtype: int64

Q- we have deal with them correctly 


import pandas as pd
from typing import List, Tuple


def calculate_cardinality(df: pd.DataFrame) -> pd.Series:
    """
    Calculate the number of unique values for each column in the DataFrame.


    Parameters:
    df (pd.DataFrame): The input DataFrame.


    Returns:
    pd.Series: A Series with column names as index and unique value counts as values.
    """
    return df.nunique()


def find_constant_columns(cardinality: pd.Series) -> List[str]:
    """
    Identify columns with constant values (only one unique value).


    Parameters:
    cardinality (pd.Series): A Series with unique value counts for each column.


    Returns:
    List[str]: A list of column names that are constant.
    """
    return cardinality[cardinality == 1].index.tolist()
def find_high_cardinality_columns(cardinality: pd.Series, total_rows: int, threshold: float = 0.5) -> List[str]:
    """
    Identify columns with high cardinality based on a threshold.


    Parameters:
    cardinality (pd.Series): A Series with unique value counts for each column.
    total_rows (int): Total number of rows in the DataFrame.
    threshold (float): The fraction of unique values relative to the number of rows.
                       Columns with unique value counts >= (threshold * total_rows) will be considered high cardinality.


    Returns:
    List[str]: A list of column names that have high cardinality.
    """
    return cardinality[cardinality / total_rows >= threshold].index.tolist()


def classify_columns_by_cardinality(df: pd.DataFrame, high_cardinality_threshold: float = 0.5) -> Tuple[List[str], List[str]]:
    """
    Classify columns into low and high cardinality based on their unique value counts.


    Parameters:
    df (pd.DataFrame): The input DataFrame.
    high_cardinality_threshold (float): The fraction of unique values to consider a column as high cardinality.


    Returns:
    Tuple[List[str], List[str]]: A tuple containing two lists:
                                 - List of constant (low cardinality) columns.
                                 - List of high cardinality columns.
    """
    cardinality = calculate_cardinality(df)
    low_cardinality = find_constant_columns(cardinality)
    total_rows = df.shape[0]
    high_cardinality = find_high_cardinality_columns(cardinality, total_rows, high_cardinality_threshold)
    return low_cardinality, high_cardinality




# Calculate cardinality and classify columns
low_cardinality, high_cardinality = classify_columns_by_cardinality(df)


# Print results
print("Constant (Low Cardinality) Columns:")
print(low_cardinality)
print("\nHigh Cardinality Columns:")
print(high_cardinality)


# Optionally, you can create new DataFrames with the classified columns
df_low_cardinality = df[low_cardinality]
df_high_cardinality = df[high_cardinality]


# You can also calculate the percentage of columns in each category
total_columns = len(df.columns)
low_cardinality_percentage = len(low_cardinality) / total_columns * 100
high_cardinality_percentage = len(high_cardinality) / total_columns * 100


print(f"\nPercentage of Constant Columns: {low_cardinality_percentage:.2f}%")
print(f"Percentage of High Cardinality Columns: {high_cardinality_percentage:.2f}%")



Constant (Low Cardinality) Columns:
['Count', 'Country', 'State']

High Cardinality Columns:
['CustomerID', 'Total Charges']

Percentage of Constant Columns: 9.38%
Percentage of High Cardinality Columns: 6.25%

"""
Handling Low and High Cardinality Columns
Low Cardinality (Including Constant Columns)
Issues:


Constant Columns: Provide no variance, offering no predictive power. They can introduce unnecessary computational overhead.
Low but Variable Cardinality: Columns with a small number of unique values (e.g., Gender, Marital Status) are not inherently problematic but may require specific encoding.
"""
df = df.drop(columns=low_cardinality )


from typing import List, Tuple


def classify_columns(df: pd.DataFrame) -> Tuple[List[str], List[str]]:
    """
    Classifies columns of a DataFrame into numerical and categorical.


    Args:
        df (pd.DataFrame): Input DataFrame


    Returns:
        Tuple[List[str], List[str]]: A tuple containing two lists:
            - List of numerical column names
            - List of categorical column names
    """
    is_numeric = lambda col: pd.api.types.is_numeric_dtype(df[col])
   
    numerical_columns = list(filter(is_numeric, df.columns))
    categorical_columns = list(filter(lambda col: not is_numeric(col), df.columns))
   
    return numerical_columns, categorical_columns


"""
now given  this function :
we use the high level order feature of it
and the lamabda function to make it more readable
make a call to it
"""
numerical_columns, categorical_columns = classify_columns(df)
(numerical_columns, categorical_columns)

"""
now get the length of
1-numerical features
2-categorical features
"""
(len(numerical_columns), len(categorical_columns))


(10, 22)
"""
oky as we see we have
10- numerical features
23- categorical features
and the problem is a supervised learning problem
where the "y" is $"Churn Value"
Q- what about to lear about some statique properties of this target


"""
"""
Q- firt idea that come to my mind to plot the density fuction of the target
--> create a python target feature and plot it density function
"""


# Create a target feature
target = df['Churn Value']


# Plot the density function of the target
import matplotlib.pyplot as plt
import seaborn as sns


plt.figure(figsize=(10, 6))
sns.kdeplot(data=target, shade=True)
plt.title('Density Function of Churn Value')
plt.xlabel('Churn Value')
plt.ylabel('Density')
plt.show()




"""
oky as we see we have
9- numerical features
24- categorical features
and the problem is a supervised learning problem
where the "y" is $"Churn Value"
Q- what about to lear about some statique properties of this target


"""


"""
Cumulative Distribution Function (CDF):
A CDF would show the proportion of customers below any given churn value. This graph would:




Clearly illustrate the percentiles of churn risk
Help identify thresholds for categorizing customers (e.g., low, medium, high risk)
Reveal the exact proportion of customers in each peak




"""
# Create a target feature
target = df['Churn Value']
# Print some statisticsFeatur
print(f"Mean Churn Value: {np.mean(target)}")
print(f"Median Churn Value: {np.median(target)}")
print(f"25th Percentile: {np.percentile(target, 25)}")
print(f"75th Percentile: {np.percentile(target, 75)}")



Q- in this part i want to focus in two part 

Feature engieerijng and Features selection  

Q- we will be a pair programming you (Aà) and me we brain some ideas 
Test it , get feedback and iterate intil converge oky 

"""
First let's try to deal with the encoding of categorical variables.
Q- why On-Hot Encoding?
because after callsifying the categorical variables, numerical values
and also classify them in low & hight cardinaality.
we can use the One-Hot Encoding to encode the categorical variables.


Idea: Encode categorical variables into numerical representations.


One-Hot Encoding: Suitable for nominal categories with limited unique values.


Q- levraging all the previous code try to levrage the principle of "DRY" and use them
- first to select the varibles with the right cardinality. in the categorical variables.
- second apply the One-Hot Encoding to the categorical variables.


"""






"""
First let's try to deal with the encoding of categorical variables.
Q- why On-Hot Encoding?
because after callsifying the categorical variables, numerical values
and also classify them in low & hight cardinaality.
we can use the One-Hot Encoding to encode the categorical variables.


Idea: Encode categorical variables into numerical representations.


One-Hot Encoding: Suitable for nominal categories with limited unique values.


Q- levraging all the previous code try to levrage the principle of "DRY" and use them
- first to select the varibles with the right cardinality. in the categorical variables.
- second apply the One-Hot Encoding to the categorical variables.


"""


def select_categorical_for_encoding(df: pd.DataFrame, high_cardinality_threshold: float = 0.5) -> List[str]:
    _, categorical_columns = classify_columns(df)
    cardinality = calculate_cardinality(df[categorical_columns])
    total_rows = df.shape[0]
    high_cardinality = find_high_cardinality_columns(cardinality, total_rows, high_cardinality_threshold)
    return [col for col in categorical_columns if col not in high_cardinality]


def one_hot_encode(df: pd.DataFrame, columns_to_encode: List[str]) -> pd.DataFrame:
    return pd.get_dummies(df, columns=columns_to_encode, drop_first=True)


# Select categorical variables for encoding
columns_to_encode = select_categorical_for_encoding(df)


# Apply One-Hot Encoding
df_encoded = one_hot_encode(df, columns_to_encode)


# Print information about the encoding
print(f"Original DataFrame shape: {df.shape}")
print(f"Encoded DataFrame shape: {df_encoded.shape}")
print(f"\nColumns encoded: {columns_to_encode}")
print(f"\nNew columns added: {set(df_encoded.columns) - set(df.columns)}")






Q- the code is right but the size of the data 

Original DataFrame shape: (7043, 32)
Encoded DataFrame shape: (7043, 2818)

Columns encoded: ['Country', 'State', 'City', 'Lat Long', 'Gender', 'Senior Citizen', 'Partner', 'Dependents', 'Phone Service', 'Multiple Lines', 'Internet Service', 'Online Security', 'Online Backup', 'Device Protection', 'Tech Support', 'Streaming TV', 'Streaming Movies', 'Contract', 'Paperless Billing', 'Payment Method', 'Churn Label']

New columns added: {'City_West Covina', 'Lat Long_37.830267, -121.201018', 'Lat Long_36.092975, -121.549826', 'City_Castroville', 'Lat Long_35.957019, -119.330928', 'Lat Long_34.102119, -117.815532', 'Lat Long_38.208336, -120.339938', 'Lat Long_33.477923, -117.705314', 'City_Avenal', 'City_Somis', 'City_Port Hueneme', 'Lat Long_32.762506, -117.07245', 'Lat Long_33.624654, -117.611733', 'Lat Long_34.031529, -118.491156', 'Lat Long_37.410236, -121.320337', 'Lat Long_33.752591, -117.993661', 'City_Glendora', 'City_Shandon', 'Lat Long_37.800254, -122.436975', 'Lat Long_34.062095, -118.401508', 'Lat Long_38.636052, -119.489162', 'Lat Long_34.156629, -119.117218', 'City_Lost Hills', 'City_Dublin', 'City_Philo', 'City_Whitmore', 'Lat Long_32.690654, -115.431225', 'City_Nipomo', 'Lat Long_33.897253, -117.792202', 'Lat Long_39.298065, -123.25211', 'Lat Long_34.827662, -118.999073', 'Lat Long_32.785165, -116.862648', 'Lat Long_33.946982, -116.977672', 'City_Chino Hills', 'Lat Long_39.69676, -121.644379', 'Lat Long_39.172777, -121.805845', 'City_Maricopa', 'Lat Long_38.227285, -121.02789', 'City_Santa Rosa', 'City_Mountain View', 'City_Palermo', 'City_Duncans Mills', 'City_Petaluma', 'Lat Long_32.770393, -115.60915', 'City_Angels Camp', 'Lat Long_32.67102, -117.095235', 'Multiple Lines_No phone service', 'Lat Long_33.569186, -117.640055', 'City_Penn Valley', 'Lat Long_33.972119, -118.020188', 'City_Alhambra', 'City_Winton', 'Lat Long_39.408634, -123.045516', 'Lat Long_34.017697, -118.200577', 'City_Palm Springs', 'Lat Long_37.270938, -121.851046', 'Lat Long_34.130861, -118.68346', 'City_Fulton', 'Lat Long_33.876482, -118.284077', 'City_Saratoga', 'Lat Long_36.385818, -119.224243', 'City_Healdsburg', 'Lat Long_39.117537, -122.284654', 'Lat Long_41.949216, -122.050062', 'Lat Long_34.072945, -118.37267', 'Lat Long_40.408796, -121.579609', 'Lat Long_37.736535, -122.45732', 'City_Villa Park', 'City_Nice', 'Lat Long_33.868316, -117.929029', 'City_Garden Valley', 'Lat Long_37.013471, -121.877877', 'Lat Long_33.015866, -117.272254', 'City_Morgan Hill', 'Lat Long_33.734933, -117.044145', 'City_Temecula', 'City_Camp Nelson', 'Lat Long_33.764018, -117.931507', 'City_Cressey', 'Lat Long_35.511833, -120.918713', 'City_Emeryville', 'Lat Long_37.897753, -122.279391', 'Lat Long_36.478239, -119.52137', 'Lat Long_38.578807, -123.19338', 'Lat Long_37.885629, -122.46858', 'Lat Long_39.559709, -120.345639', 'City_Kerman', 'City_Eagleville', 'City_Pescadero', 'Lat Long_32.741499, -117.127409', 'City_Portola Valley', 'City_Pico Rivera', 'City_Atwater', 'Lat Long_34.191842, -118.822796', 'City_Los Angeles', 'City_Templeton', 'City_Crockett', 'City_Brisbane', 'City_Sunol', 'City_San Bernardino', 'City_Platina', 'Lat Long_33.936291, -118.332639', 'Lat Long_38.434138, -121.30587', 'Lat Long_34.278697, -119.167798', 'City_Galt', 'Lat Long_40.210895, -123.86', 'City_Alpaugh', 'Lat Long_33.001813, -117.263628', 'City_Carmichael', 'Lat Long_34.2565, -117.19335', 'City_Greenwood', 'City_Acton', 'Lat Long_32.622999, -116.687855', 'City_Calistoga', 'City_Scott Bar', 'City_Honeydew', 'Lat Long_38.592745, -121.540036', 'Lat Long_34.106922, -117.297553', 'City_San Jacinto', 'City_Traver', 'Lat Long_33.993991, -118.39704', 'Lat Long_39.246654, -120.029273', 'City_Westport', 'Lat Long_38.99003, -121.114408', 'Lat Long_39.07116, -122.598542', 'City_Mc Kittrick', 'City_Janesville', 'City_Redcrest', 'Lat Long_37.768881, -122.395521', 'City_South Pasadena', 'Lat Long_39.19514, -121.503883', 'City_Montclair', 'City_Malibu', 'Lat Long_39.141934, -122.770679', 'City_Freedom', 'City_June Lake', 'City_Claremont', 'Lat Long_32.741852, -117.243453', 'City_Silverado', 'Lat Long_39.600599, -120.636358', 'Lat Long_32.85723, -117.209774', 'City_Anza', 'Lat Long_33.081478, -117.033814', 'City_Spreckels', 'Lat Long_37.902968, -119.667544', 'Lat Long_37.444314, -122.149996', 'Lat Long_37.573633, -122.455167', 'Lat Long_33.930931, -117.361788', 'Lat Long_35.280113, -118.962329', 'Lat Long_37.684694, -122.40712', 'Streaming TV_No internet service', 'Lat Long_38.326215, -122.718742', 'City_Canoga Park', 'Lat Long_33.840399, -118.353714', 'City_Pine Grove', 'Lat Long_35.924252, -116.188668', 'Lat Long_35.996008, -120.85305', 'Lat Long_37.233034, -121.947427', 'Lat Long_33.850452, -117.726668', 'City_Esparto', 'City_Clipper Mills', 'Lat Long_37.223, -119.001021', 'Lat Long_33.828289, -117.201666', 'City_Daggett', 'Lat Long_38.129308, -122.834815', 'City_Newhall', 'Lat Long_38.049457, -121.21653', 'Lat Long_34.122501, -117.320138', 'City_Fremont', 'City_Dunlap', 'City_Hawthorne', 'City_Boulevard', 'City_Fairfield', 'Lat Long_36.814539, -119.711868', 'City_Baldwin Park', 'Lat Long_36.008958, -118.891593', 'Lat Long_33.21846, -117.116916', 'Lat Long_35.824572, -116.274755', 'Lat Long_37.106902, -122.100006', 'City_Murrieta', 'Lat Long_33.763678, -116.429928', 'Lat Long_38.006047, -121.916834', 'City_Standish', 'Lat Long_33.787165, -117.931889', 'City_Beverly Hills', 'Lat Long_37.639029, -120.964772', 'Lat Long_38.550722, -121.457314', 'City_Marina Del Rey', 'Lat Long_35.050345, -120.489599', 'Lat Long_32.67117, -117.00232', 'Lat Long_34.147149, -118.463365', 'City_Burson', 'Lat Long_34.136367, -117.460803', 'Lat Long_40.825486, -124.049485', 'City_Chilcoot', 'City_Menifee', 'City_Palo Verde', 'Lat Long_38.696659, -123.436861', 'City_Crestline', 'Lat Long_37.556634, -122.317723', 'Lat Long_33.902211, -117.914922', 'City_Laguna Hills', 'City_Trabuco Canyon', 'City_Clovis', 'City_Cottonwood', 'City_Forest Ranch', 'Lat Long_37.279689, -121.954567', 'City_Shaver Lake', 'City_Guadalupe', 'City_Mccloud', 'City_Oceanside', 'City_Bodfish', 'City_Lomita', 'City_Mi Wuk Village', 'Lat Long_37.990118, -122.012188', 'Lat Long_35.607875, -118.466318', 'Lat Long_34.727529, -118.153098', 'City_Agoura Hills', 'City_Lewiston', 'City_Camarillo', 'Lat Long_34.296574, -118.244839', 'Lat Long_41.411315, -122.697236', 'City_Redwood City', 'City_San Anselmo', 'Lat Long_34.066964, -117.937007', 'Lat Long_37.801776, -122.402293', 'Lat Long_36.29223, -119.622676', 'City_Palm Desert', 'Lat Long_37.023669, -121.946461', 'Lat Long_37.937082, -122.532369', 'Lat Long_38.169605, -121.310964', 'Lat Long_40.949012, -123.655847', 'Lat Long_36.315979, -119.710852', 'City_Corte Madera', 'City_Madeline', 'City_San Lucas', 'Lat Long_34.432843, -118.730106', 'City_Potrero', 'Contract_One year', 'Lat Long_34.084909, -117.258107', 'Lat Long_38.339996, -122.935056', 'City_Sheep Ranch', 'Lat Long_41.162295, -124.027381', 'City_Hydesville', 'Lat Long_38.368744, -122.522642', 'Lat Long_37.127386, -120.506422', 'Lat Long_36.414216, -121.360597', 'Lat Long_36.833002, -119.82947', 'City_West Hills', 'Lat Long_34.321621, -118.399841', 'Lat Long_33.720359, -117.733655', 'Lat Long_32.807867, -117.060993', 'City_Lower Lake', 'City_Los Olivos', 'Lat Long_34.214054, -118.88109', 'City_Strawberry Valley', 'Lat Long_35.405722, -117.773354', 'Lat Long_37.62984, -122.120843', 'City_Carson', 'City_Downieville', 'Lat Long_33.3249, -114.758334', 'Lat Long_37.222842, -121.988727', 'Lat Long_34.065108, -118.082791', 'City_Meadow Vista', 'City_Exeter', 'Lat Long_39.182916, -123.552571', 'Lat Long_34.037342, -119.80079', 'Lat Long_36.205465, -119.085807', 'Lat Long_39.732767, -122.042298', 'Lat Long_34.052842, -118.264495', 'Lat Long_39.884395, -122.587513', 'Lat Long_34.087558, -117.464096', 'Lat Long_36.545322, -119.642281', 'Lat Long_37.908242, -121.682472', 'City_Bethel Island', 'City_Crows Landing', 'Lat Long_34.438581, -119.685368', 'Lat Long_34.057496, -118.413959', 'Lat Long_38.419088, -122.024568', 'City_Danville', 'Lat Long_38.439696, -122.668817', 'Lat Long_34.097345, -117.906736', 'Lat Long_34.255203, -117.175654', 'Lat Long_33.458754, -117.665104', 'Lat Long_38.815515, -120.916997', 'Lat Long_39.492046, -123.375818', 'City_San Fernando', 'Lat Long_38.481902, -120.603668', 'Lat Long_32.805518, -117.169052', 'Lat Long_40.057784, -123.679461', 'Lat Long_40.390301, -123.412327', 'City_Aptos', 'Lat Long_33.884073, -117.732197', 'City_Wrightwood', 'Lat Long_39.045246, -122.743181', 'City_Alviso', 'City_Korbel', 'Lat Long_37.943954, -120.67108', 'Lat Long_40.184094, -123.745487', 'City_Winnetka', 'City_Desert Hot Springs', 'Lat Long_37.343846, -121.039391', 'City_Solvang', 'City_Alleghany', 'City_Montrose', 'Lat Long_40.485849, -124.163234', 'Lat Long_37.257063, -121.923037', 'City_Lakewood', 'Lat Long_39.745712, -121.84333', 'City_Independence', 'City_Azusa', 'City_Weldon', 'City_Martinez', 'City_Manchester', 'Lat Long_37.504133, -122.032347', 'Lat Long_38.029729, -121.387999', 'Lat Long_37.878554, -122.26609', 'Lat Long_34.110845, -118.259595', 'City_Brooks', 'City_California City', 'Lat Long_34.00709, -118.258681', 'City_Caspar', 'Lat Long_39.222323, -122.985488', 'City_Santa Ana', 'Lat Long_34.70434, -120.02609', 'Lat Long_33.833699, -118.314387', 'Lat Long_37.758085, -122.434801', 'Lat Long_40.160386, -120.835428', 'Lat Long_39.971228, -121.041166', 'City_New Cuyama', 'City_Kneeland', 'City_Volcano', 'Lat Long_38.602723, -121.279913', 'Lat Long_37.639215, -122.037554', 'City_Stanton', 'City_Badger', 'Lat Long_34.18454, -119.224666', 'Lat Long_35.303926, -120.256567', 'Lat Long_34.205504, -118.993111', 'City_Mc Farland', 'Lat Long_33.970661, -117.255039', 'Lat Long_39.220368, -122.907693', 'Lat Long_32.698964, -115.886656', 'Lat Long_36.819628, -119.440414', 'City_Daly City', 'Lat Long_36.807595, -118.901544', 'Lat Long_37.674002, -122.076796', 'Lat Long_40.877552, -121.885884', 'Lat Long_35.746484, -121.223355', 'City_La Crescenta', 'Lat Long_32.827238, -117.089287', 'City_Los Altos', 'City_South San Francisco', 'City_Cassel', 'Lat Long_33.254497, -117.285879', 'Lat Long_33.844983, -117.952151', 'City_Stratford', 'City_Alameda', 'Lat Long_40.527834, -122.318749', 'City_Shafter', 'Lat Long_36.727418, -120.123526', 'Lat Long_38.574856, -121.46504', 'Lat Long_38.652065, -121.25441', 'City_Ocotillo', 'Lat Long_37.708327, -122.083473', 'Lat Long_37.546007, -121.28257', 'City_Walnut', 'Lat Long_35.120833, -120.61843', 'Lat Long_37.100948, -120.270136', 'Lat Long_40.271535, -121.018087', 'Lat Long_37.656695, -122.048361', 'Lat Long_33.930199, -117.862898', 'Lat Long_40.664483, -123.865325', 'Lat Long_39.83307, -123.178765', 'City_Tuolumne', 'Lat Long_36.452211, -119.94575', 'City_Walnut Grove', 'City_Wasco', 'Lat Long_34.95934, -120.490081', 'City_Los Molinos', 'Lat Long_37.40122, -120.514191', 'Lat Long_37.605926, -120.69955', 'City_Antioch', 'City_Lagunitas', 'Lat Long_33.601309, -117.902304', 'Lat Long_38.823278, -121.281856', 'Lat Long_34.457005, -118.573726', 'Lat Long_39.748037, -122.302169', 'Lat Long_39.218096, -120.79153', 'City_Los Banos', 'Lat Long_33.666301, -117.969501', 'City_Mcarthur', 'Lat Long_36.732694, -119.783786', 'Lat Long_37.449537, -121.994813', 'Lat Long_41.232128, -123.194748', 'Lat Long_40.372532, -123.525626', 'Lat Long_37.921137, -122.657562', 'City_Orange', 'Lat Long_36.64545, -118.924982', 'Lat Long_39.061227, -120.179546', 'City_Woody', 'Lat Long_34.144703, -117.770299', 'City_Highland', 'Lat Long_37.818589, -120.256995', 'Lat Long_39.597975, -122.032248', 'Lat Long_36.560498, -117.962461', 'Lat Long_37.369709, -122.215844', 'Lat Long_38.021772, -122.691744', 'Lat Long_34.003243, -117.138286', 'Lat Long_32.827184, -116.703729', 'City_Albany', 'City_Strathmore', 'Lat Long_39.00978, -120.978273', 'City_Soulsbyville', 'Lat Long_37.422961, -120.765493', 'City_King City', 'City_Smartville', 'City_West Point', 'Lat Long_36.875409, -121.279679', 'City_Inverness', 'Lat Long_41.096569, -121.879082', 'Lat Long_36.624641, -121.647195', 'Lat Long_35.637715, -119.893068', 'Lat Long_37.32886, -121.834567', 'Lat Long_38.69508, -121.271616', 'City_Nicolaus', 'City_Bridgeville', 'Lat Long_38.398815, -122.861923', 'City_Poway', 'City_Fort Irwin', 'City_Rowland Heights', 'Lat Long_41.082472, -121.195215', 'Lat Long_40.656287, -121.428965', 'City_Perris', 'City_Los Alamos', 'Lat Long_33.890046, -117.455583', 'Lat Long_38.749466, -121.184196', 'Lat Long_34.501452, -118.207862', 'Lat Long_34.818227, -120.418784', 'Lat Long_34.061918, -118.277939', 'Lat Long_34.105493, -117.660934', 'City_Comptche', 'Lat Long_35.916943, -120.129921', 'Lat Long_32.858595, -115.662709', 'City_Campo', 'City_Pismo Beach', 'City_Desert Center', 'Lat Long_38.313447, -121.123886', 'City_San Bruno', 'City_Auburn', 'Lat Long_34.130992, -118.894673', 'Lat Long_41.932207, -120.135941', 'City_Sanger', 'Lat Long_36.414611, -121.6386', 'Lat Long_37.572273, -121.964583', 'Lat Long_34.089927, -118.095645', 'Lat Long_34.133809, -117.523724', 'Lat Long_39.710591, -123.682799', 'Lat Long_38.445603, -123.063756', 'Lat Long_37.609095, -121.263381', 'Lat Long_38.166791, -121.14207', 'Lat Long_35.391733, -118.984109', 'Lat Long_38.931425, -121.946081', 'City_Wendel', 'Lat Long_34.441123, -117.537886', 'City_Burbank', 'Lat Long_37.83323, -121.601461', 'City_Moss Beach', 'Lat Long_34.43987, -118.644609', 'Lat Long_33.964131, -118.272783', 'City_San Marino', 'City_Homeland', 'Lat Long_36.596271, -121.442274', 'Lat Long_33.475493, -117.219551', 'City_Williams', 'City_Monterey', 'City_Encino', 'City_Kenwood', 'Lat Long_34.002028, -118.430656', 'Lat Long_34.065875, -118.238728', 'Lat Long_33.917145, -118.401554', 'City_Cobb', 'Lat Long_34.099891, -118.414338', 'Lat Long_38.784329, -121.373245', 'Lat Long_39.473896, -121.415927', 'City_Canby', 'Lat Long_34.757477, -120.550507', 'Lat Long_36.303793, -119.375646', 'Lat Long_37.774633, -122.274434', 'City_Guerneville', 'Lat Long_37.435664, -121.049056', 'Lat Long_37.654551, -119.822984', 'Lat Long_38.912881, -121.082766', 'Lat Long_33.807864, -117.923782', 'Lat Long_40.080342, -120.957805', 'City_Travis Afb', 'City_Death Valley', 'Lat Long_33.548869, -117.334165', 'City_Davis', 'Lat Long_34.250069, -117.393949', 'Lat Long_34.039224, -118.266293', 'City_Carlotta', 'Lat Long_37.781304, -122.461522', 'Lat Long_38.135897, -122.563683', 'City_Likely', 'Lat Long_37.855717, -121.994813', 'City_Hanford', 'Lat Long_34.358321, -117.618263', 'Lat Long_37.946617, -122.563571', 'Lat Long_33.973616, -118.24902', 'City_Paynes Creek', 'Lat Long_32.808814, -117.134694', 'Lat Long_37.160194, -121.945611', 'Lat Long_38.672708, -122.403219', 'Lat Long_32.72523, -117.171346', 'Lat Long_34.557711, -118.029441', 'Lat Long_33.832799, -116.250973', 'Lat Long_38.660442, -121.346321', 'Lat Long_37.388349, -122.075299', 'Streaming TV_Yes', 'City_Wilmington', 'Lat Long_33.918043, -117.617809', 'City_Tecopa', 'Lat Long_33.788208, -118.404955', 'City_San Marcos', 'Lat Long_38.838088, -122.73203', 'City_Pala', 'City_Junction City', 'Lat Long_37.04584, -118.397236', 'City_Simi Valley', 'City_Wilseyville', 'Lat Long_36.77462, -121.664714', 'Lat Long_33.28156, -115.955541', 'Lat Long_37.717196, -122.159338', 'Lat Long_41.121108, -122.336613', 'Lat Long_41.280478, -121.160249', 'City_Mount Shasta', 'Lat Long_35.369553, -120.763864', 'Lat Long_36.04533, -119.532424', 'Lat Long_37.721052, -122.413573', 'Lat Long_34.361387, -117.337509', 'City_Rodeo', 'City_Bodega Bay', 'City_Cayucos', 'City_Imperial', 'Lat Long_36.37559, -119.211689', 'Lat Long_41.572813, -124.035011', 'City_Yermo', 'Lat Long_40.586588, -122.903677', 'Lat Long_38.759751, -121.288545', 'City_Klamath River', 'City_Pioneertown', 'City_Fillmore', 'Lat Long_34.063947, -118.383001', 'City_Aliso Viejo', 'Lat Long_33.906496, -116.569499', 'Lat Long_38.109125, -120.078597', 'Lat Long_34.360261, -119.306383', 'Lat Long_36.319181, -117.593053', 'Lat Long_34.074736, -118.145959', 'City_Plymouth', 'City_Myers Flat', 'Lat Long_39.872961, -120.198876', 'Lat Long_35.453912, -120.69461', 'Lat Long_35.116307, -118.817644', 'Lat Long_34.213049, -118.317651', 'City_Live Oak', 'City_Huntington Park', 'City_Orangevale', 'City_Loma Mar', 'City_Gerber', 'Lat Long_37.722127, -120.110174', 'City_Callahan', 'Lat Long_33.429488, -117.609432', 'City_Vista', 'Lat Long_37.474396, -120.875917', 'Lat Long_37.766556, -121.976784', 'City_Tracy', 'City_Dinuba', 'City_Los Osos', 'City_Richgrove', 'Lat Long_37.942551, -122.491642', 'City_Diamond Springs', 'Lat Long_36.799648, -119.801247', 'Lat Long_34.279221, -119.221437', 'Lat Long_36.600193, -120.153393', 'City_Lookout', 'Lat Long_33.03679, -115.60503', 'Lat Long_37.924014, -122.511694', 'City_Wallace', 'City_Maywood', 'Lat Long_34.156758, -117.404686', 'Lat Long_40.342928, -124.063329', 'Lat Long_37.808731, -122.238708', 'City_Penngrove', 'Lat Long_39.080469, -122.955176', 'Lat Long_39.025867, -123.381544', 'Lat Long_34.186211, -117.07683', 'Lat Long_40.740138, -122.587476', 'Lat Long_34.084747, -117.886844', 'Lat Long_34.029175, -117.307211', 'Lat Long_38.489789, -122.27011', 'City_Calipatria', 'Lat Long_34.255442, -118.421314', 'Lat Long_34.061634, -117.893169', 'City_Hamilton City', 'Lat Long_38.071327, -120.632221', 'Lat Long_41.528541, -122.955018', 'Lat Long_33.847755, -118.112532', 'Lat Long_36.444232, -119.718285', 'Lat Long_39.493991, -122.286363', 'City_Solana Beach', 'City_Dulzura', 'City_Barstow', 'City_Campbell', 'City_Mira Loma', 'Lat Long_33.739415, -116.968339', 'Lat Long_37.421299, -120.599587', 'Lat Long_37.311088, -121.961786', 'City_San Lorenzo', 'Lat Long_34.153733, -118.593408', 'Lat Long_36.841655, -119.797113', 'Lat Long_38.123544, -121.159078', 'City_Vidal', 'Lat Long_35.233745, -120.626442', 'Lat Long_37.424342, -122.165641', 'Lat Long_41.388397, -122.794636', 'City_Beale Afb', 'Lat Long_33.771612, -118.143866', 'Lat Long_34.89326, -116.505958', 'Lat Long_34.238802, -118.482296', 'City_Sacramento', 'City_Riverside', 'City_Bodega', 'City_Wheatland', 'Lat Long_32.695681, -116.798386', 'Lat Long_37.410567, -122.297152', 'Lat Long_40.170357, -123.417298', 'City_Madera', 'Lat Long_33.540604, -117.10909', 'Lat Long_37.624436, -122.430661', 'Lat Long_39.292334, -121.320597', 'Lat Long_38.112166, -122.634384', 'Lat Long_38.018065, -122.546024', 'Lat Long_34.296813, -118.685703', 'City_Grizzly Flats', 'Lat Long_35.165668, -120.655842', 'City_Cotati', 'Lat Long_40.310119, -123.909449', 'Lat Long_34.242058, -116.89802', 'Lat Long_37.140104, -119.657092', 'City_Cantua Creek', 'Lat Long_36.460611, -121.852507', 'City_Turlock', 'Lat Long_34.101608, -118.055848', 'Lat Long_37.945288, -122.383941', 'City_Vallejo', 'City_Guatay', 'Lat Long_34.091829, -118.491244', 'Lat Long_32.857946, -116.561917', 'Lat Long_34.105935, -117.2914', 'City_Winters', 'City_Gilroy', 'City_Olympic Valley', 'City_Newark', 'Lat Long_34.027337, -118.28515', 'Lat Long_34.109775, -117.378904', 'Lat Long_40.704293, -122.803899', 'City_Calimesa', 'City_Orleans', 'City_Corcoran', 'Lat Long_32.948262, -117.256086', 'Lat Long_37.943087, -122.72379', 'City_Salinas', 'City_Forks Of Salmon', 'City_Santa Ynez', 'City_Long Beach', 'City_Old Station', 'Lat Long_33.735802, -117.818805', 'Lat Long_37.441931, -121.878502', 'Lat Long_39.191797, -120.212401', 'City_Fullerton', 'Lat Long_40.053684, -120.743116', 'Lat Long_33.723579, -118.005441', 'City_Tehachapi', 'Lat Long_33.707483, -117.200006', 'City_Oak Park', 'City_Glenn', 'City_Downey', 'Lat Long_33.719869, -117.907063', 'Lat Long_37.654436, -122.426468', 'Lat Long_40.89866, -123.539754', 'City_Hornitos', 'Lat Long_38.880622, -120.973865', 'Lat Long_38.377165, -123.037957', 'City_Yorba Linda', 'Lat Long_34.049315, -117.255974', 'City_Angelus Oaks', 'City_Big Oak Flat', 'City_Petrolia', 'City_Livingston', 'Lat Long_34.102084, -118.451629', 'Lat Long_37.858898, -122.240512', 'City_Suisun City', 'Lat Long_38.852544, -120.837669', 'City_Union City', 'City_Herald', 'City_Glenhaven', 'Lat Long_33.840524, -118.148403', 'City_Oakland', 'Lat Long_36.141319, -119.129075', 'Lat Long_37.257772, -122.051824', 'Lat Long_37.394411, -120.127262', 'Lat Long_34.965648, -117.001509', 'City_Clayton', 'Lat Long_33.543835, -115.993906', 'Lat Long_34.424926, -117.184503', 'City_Joshua Tree', 'Lat Long_34.099869, -118.326843', 'Lat Long_36.362741, -121.869685', 'Lat Long_33.719221, -118.073596', 'City_Lake Hughes', 'Lat Long_38.646096, -121.442433', 'Lat Long_32.811001, -115.152865', 'City_Tahoe City', 'Lat Long_38.608405, -121.449942', 'Lat Long_35.342891, -119.064803', 'Lat Long_34.188339, -118.300942', 'Lat Long_38.646209, -121.52446', 'Lat Long_39.094102, -123.500853', 'City_Hat Creek', 'City_Newcastle', 'Lat Long_33.864622, -118.179626', 'City_Lake Arrowhead', 'Lat Long_37.424655, -121.74841', 'Lat Long_37.669516, -120.626964', 'Lat Long_34.182378, -118.262922', 'Lat Long_37.051166, -122.056194', 'Lat Long_40.309088, -123.668201', 'City_Sloughhouse', 'City_San Juan Capistrano', 'Lat Long_35.38381, -119.730885', 'Lat Long_35.480896, -120.469476', 'Lat Long_39.657228, -121.37778', 'Lat Long_36.78979, -119.929894', 'Lat Long_33.874224, -117.993368', 'Lat Long_39.084645, -120.894014', 'City_White Water', 'City_Novato', 'City_Goodyears Bar', 'City_Landers', 'Lat Long_34.169706, -118.323548', 'Lat Long_33.867593, -118.080637', 'Lat Long_33.290907, -117.202895', 'City_Farmington', 'Lat Long_36.301689, -119.018233', 'Lat Long_38.157794, -121.520223', 'City_Millville', 'Payment Method_Mailed check', 'Lat Long_40.448632, -122.306657', 'City_Palomar Mountain', 'Lat Long_32.579134, -117.119009', 'City_Mount Hermon', 'Lat Long_40.637105, -121.906949', 'Lat Long_37.382909, -121.634151', 'City_Newbury Park', 'Lat Long_38.33788, -120.954202', 'Lat Long_38.486502, -121.334051', 'City_Vina', 'Device Protection_No internet service', 'Lat Long_34.200175, -118.540958', 'City_Yosemite National Park', 'City_Thermal', 'City_Tahoe Vista', 'Lat Long_38.517295, -121.439819', 'City_Larkspur', 'City_Laytonville', 'Lat Long_33.674583, -114.71612', 'City_Armona', 'Lat Long_39.068071, -121.832638', 'City_Temple City', 'Lat Long_39.279068, -120.414275', 'Lat Long_40.331975, -121.460674', 'City_Seiad Valley', 'Lat Long_37.974498, -121.319568', 'City_Coleville', 'City_Loma Linda', 'Lat Long_33.992416, -117.807874', 'City_Three Rivers', 'Lat Long_37.901371, -122.572024', 'Lat Long_36.057458, -118.591951', 'City_Oceano', 'City_San Geronimo', 'City_Ridgecrest', 'Lat Long_40.809636, -124.189977', 'Lat Long_37.80821, -121.308401', 'Lat Long_34.067699, -116.903891', 'City_Macdoel', 'Lat Long_37.571748, -121.659562', 'Lat Long_33.867257, -118.330794', 'Lat Long_33.885811, -118.206459', 'Lat Long_37.294926, -121.894763', 'Lat Long_39.607831, -121.777959', 'Lat Long_37.746699, -122.442833', 'Lat Long_39.435756, -121.552071', 'Lat Long_34.601055, -120.382917', 'Lat Long_35.809921, -119.127437', 'Lat Long_33.936827, -118.359824', 'Lat Long_34.067932, -117.785168', 'Lat Long_37.505768, -121.962472', 'Lat Long_37.371862, -121.860349', 'Lat Long_34.294142, -118.603883', 'Lat Long_33.174725, -116.743329', 'Lat Long_37.45809, -122.115398', 'City_Wishon', 'City_Arbuckle', 'Lat Long_38.733908, -120.453416', 'City_La Mirada', 'Lat Long_38.044523, -121.348048', 'Lat Long_33.698728, -117.67768', 'Lat Long_39.745805, -120.580882', 'Lat Long_40.7666, -123.80458', 'City_Forestville', 'City_Knights Landing', 'Lat Long_38.683605, -120.811852', 'Lat Long_34.078991, -118.263804', 'Lat Long_37.612612, -121.108568', 'City_Keeler', 'Lat Long_39.12334, -122.838198', 'City_Yountville', 'Lat Long_33.850504, -118.039892', 'Lat Long_37.540582, -122.509594', 'Lat Long_32.802959, -117.027095', 'Lat Long_33.830209, -117.906099', 'City_Yuba City', 'City_Mammoth Lakes', 'Lat Long_33.88856, -118.351813', 'Lat Long_37.027663, -119.69056', 'Lat Long_37.907777, -122.127161', 'Lat Long_32.800671, -116.483363', 'Lat Long_38.244806, -120.417301', 'Lat Long_38.549185, -121.328386', 'City_El Dorado Hills', 'City_Cazadero', 'Lat Long_37.999406, -121.686241', 'Lat Long_34.152875, -118.486056', 'City_Bass Lake', 'Lat Long_38.197907, -122.017258', 'Lat Long_33.655421, -117.391751', 'City_Rancho Palos Verdes', 'City_Santa Margarita', 'Lat Long_40.021787, -122.127576', 'City_Redwood Valley', 'City_Piercy', 'Lat Long_38.41935, -120.469545', 'Lat Long_34.128284, -118.047732', 'Lat Long_32.607964, -117.059459', 'City_San Quentin', 'City_Bolinas', 'City_California Hot Springs', 'Lat Long_39.075694, -121.70606', 'Lat Long_33.678591, -117.905471', 'City_Felton', 'City_Point Arena', 'City_Dunsmuir', 'Lat Long_37.670526, -120.877572', 'City_San Jose', 'Lat Long_32.912664, -116.635387', 'Lat Long_37.3511, -122.037311', 'Lat Long_33.75462, -118.071128', 'City_Redway', 'Lat Long_37.794487, -122.42227', 'Lat Long_39.203817, -121.19584', 'Lat Long_38.224869, -119.755729', 'Lat Long_34.028331, -118.354338', 'Lat Long_35.316263, -119.402559', 'Lat Long_33.744439, -117.98588', 'City_Adin', 'City_Glendale', 'Lat Long_33.752938, -116.230055', 'City_Brentwood', 'City_Lamont', 'City_Zenia', 'City_Graton', 'Lat Long_35.710244, -118.881679', 'Lat Long_33.923149, -117.244933', 'Lat Long_36.784481, -121.759054', 'Lat Long_33.81859, -117.821288', 'Lat Long_37.724817, -122.224363', 'Lat Long_35.339796, -119.023552', 'City_Ventura', 'Lat Long_33.53604, -116.119222', 'City_San Mateo', 'Lat Long_37.004068, -119.930027', 'City_Rio Dell', 'Lat Long_37.277592, -121.986477', 'Lat Long_40.789799, -121.474529', 'Lat Long_32.886925, -117.152162', 'City_Forest Falls', 'Lat Long_37.255637, -120.493537', 'City_Creston', 'Lat Long_40.497441, -121.827524', 'City_French Camp', 'City_Redlands', 'Lat Long_39.432127, -121.099287', 'Lat Long_33.929704, -118.01208', 'Lat Long_37.84551, -122.235181', 'City_Lakehead', 'Lat Long_35.989792, -121.055933', 'Lat Long_36.633498, -119.298895', 'City_Ojai', 'City_Santee', 'Lat Long_40.648024, -123.465088', 'Lat Long_37.233226, -121.78809', 'City_Ducor', 'City_Ramona', 'City_El Monte', 'Lat Long_38.147852, -120.440124', 'Lat Long_39.258746, -121.77697', 'Lat Long_33.802664, -118.179971', 'Lat Long_33.975332, -118.355252', 'Lat Long_34.015217, -118.109962', 'Lat Long_33.606336, -117.893042', 'Lat Long_38.694081, -121.694431', 'City_Manteca', 'City_Apple Valley', 'Lat Long_36.5276, -119.865999', 'City_Newport Beach', 'Lat Long_39.34128, -120.786867', 'City_Oakdale', 'City_Palo Alto', 'Lat Long_37.80707, -122.297401', 'Lat Long_37.916648, -122.008483', 'Lat Long_33.949255, -118.246978', 'Lat Long_36.822715, -119.761826', 'Lat Long_40.775272, -123.287414', 'Lat Long_32.733564, -117.033713', 'Lat Long_40.936285, -121.572692', 'Lat Long_37.419725, -122.062947', 'Lat Long_41.251322, -122.105209', 'Lat Long_35.392599, -119.245341', 'Lat Long_37.555631, -120.911653', 'Lat Long_35.772244, -119.209689', 'Lat Long_38.787446, -122.58675', 'Lat Long_38.674276, -121.961866', 'Lat Long_39.305545, -123.743697', 'Lat Long_37.509366, -122.306132', 'Lat Long_40.243494, -121.154733', 'City_Santa Cruz', 'Lat Long_37.815459, -121.977203', 'Lat Long_33.143826, -115.497485', 'City_Pleasant Hill', 'City_Glennville', 'Lat Long_35.245035, -118.905553', 'City_Moraga', 'Lat Long_39.125311, -121.392283', 'City_Compton', 'City_Woodbridge', 'City_Pleasanton', 'City_Weott', 'City_Denair', 'Lat Long_41.750354, -120.403885', 'Lat Long_38.527297, -122.810044', 'Lat Long_39.333737, -120.858667', 'Lat Long_38.002125, -121.324979', 'Lat Long_34.966777, -117.961179', 'Lat Long_40.965011, -124.015255', 'Lat Long_34.248061, -117.29028', 'Lat Long_38.911577, -120.106169', 'Lat Long_32.68674, -117.186612', 'City_Laguna Niguel', 'Lat Long_39.672813, -120.456699', 'Lat Long_37.479926, -120.230424', 'Lat Long_34.078821, -118.177576', 'City_Mather', 'Lat Long_41.5837, -122.935922', 'Lat Long_34.631362, -120.238218', 'Lat Long_41.769709, -121.92063', 'Lat Long_34.165383, -118.123752', 'City_Santa Maria', 'Lat Long_35.186644, -120.728305', 'City_Upper Lake', 'Lat Long_41.759864, -122.379175', 'City_Newman', 'Lat Long_37.161544, -121.649371', 'Lat Long_39.288127, -122.415841', 'City_Walnut Creek', 'Lat Long_34.167465, -118.165327', 'City_Loyalton', 'City_Davis Creek', 'City_Grand Terrace', 'Lat Long_38.93496, -122.792243', 'Lat Long_33.748478, -117.858918', 'City_Jacumba', 'Lat Long_33.141265, -116.967221', 'City_Amboy', 'Lat Long_33.645672, -117.922613', 'Lat Long_34.711224, -114.702256', 'City_Lotus', 'Lat Long_40.796621, -124.15428', 'Lat Long_40.186772, -122.388361', 'Lat Long_37.980269, -122.342635', 'Lat Long_40.845738, -120.322219', 'City_Canyon Dam', 'Lat Long_37.789168, -122.395009', 'City_Moreno Valley', 'Lat Long_33.644585, -116.871544', 'Lat Long_41.017282, -121.468945', 'Lat Long_36.636638, -119.421842', 'Lat Long_36.757345, -119.818274', 'Streaming Movies_No internet service', 'Lat Long_34.004379, -117.447864', 'Lat Long_36.217864, -120.080117', 'City_Milpitas', 'City_Wofford Heights', 'City_French Gulch', 'Lat Long_33.88274, -117.224878', 'Lat Long_34.420998, -119.60137', 'Lat Long_34.089953, -118.294824', 'Lat Long_37.255479, -121.889838', 'Lat Long_38.468893, -122.580539', 'City_Chula Vista', 'Lat Long_33.841027, -118.078097', 'Lat Long_33.923573, -118.200669', 'City_Sierra Madre', 'Lat Long_34.001617, -118.222274', 'City_Orland', 'Lat Long_39.955164, -122.018567', 'Lat Long_40.059385, -122.091481', 'Lat Long_34.236683, -118.517588', 'Lat Long_37.722727, -122.02157', 'City_La Grange', 'Lat Long_37.249377, -120.249581', 'Lat Long_36.810568, -121.503022', 'Lat Long_38.304194, -120.592431', 'City_Pacifica', 'Lat Long_33.956228, -118.120993', 'City_Riverbank', 'Lat Long_37.420273, -120.66527', 'Lat Long_36.749403, -119.787574', 'Lat Long_38.834469, -122.127193', 'Lat Long_38.848082, -123.50608', 'Lat Long_33.603282, -117.821841', 'City_Lee Vining', 'City_Dixon', 'City_Guinda', 'City_Roseville', 'City_Stockton', 'Lat Long_38.445939, -121.496855', 'City_Terra Bella', 'City_Menlo Park', 'Lat Long_37.786031, -122.437301', 'Lat Long_34.238208, -118.55029', 'Lat Long_39.082568, -121.55325', 'Lat Long_38.911299, -123.609588', 'Lat Long_34.419203, -119.710008', 'City_Heber', 'Lat Long_37.351214, -121.952417', 'City_Winterhaven', 'City_Buttonwillow', 'City_Twentynine Palms', 'Lat Long_34.598221, -117.79593', 'City_Greenville', 'City_Eldridge', 'City_Sequoia National Park', 'Lat Long_34.404544, -119.302118', 'Lat Long_38.687367, -121.34848', 'Lat Long_40.345949, -120.081187', 'Lat Long_32.961064, -117.134917', 'City_South El Monte', 'Lat Long_38.25485, -122.461799', 'Lat Long_40.022184, -121.062384', 'Lat Long_36.657462, -119.595293', 'Lat Long_33.927254, -118.249826', 'Lat Long_33.215251, -116.53633', 'City_San Gabriel', 'Lat Long_38.629618, -122.593216', 'City_Blue Lake', 'City_Fort Jones', 'Lat Long_33.765893, -117.881533', 'City_Indio', 'Lat Long_33.948558, -116.516976', 'Lat Long_38.099323, -122.945723', 'City_Burlingame', 'Lat Long_34.195685, -118.490752', 'City_Palo Cedro', 'City_Big Bend', 'City_San Francisco', 'Lat Long_32.741859, -117.090353', 'City_Summerland', 'Lat Long_38.542448, -122.419923', 'City_Westmorland', 'Lat Long_34.559882, -115.637164', 'Lat Long_38.148862, -121.737696', 'Lat Long_37.553469, -120.952825', 'City_Ione', 'City_Annapolis', 'City_Topaz', 'Lat Long_33.79499, -118.065591', 'Lat Long_38.42528, -119.475741', 'Lat Long_35.865795, -118.69759', 'City_Sutter Creek', 'City_Sunnyvale', 'Lat Long_38.107441, -120.230625', 'City_Bridgeport', 'Lat Long_32.832706, -116.873258', 'City_Earp', 'City_El Segundo', 'City_Grenada', 'City_Tehama', 'City_Venice', 'Lat Long_34.044271, -118.185237', 'Lat Long_36.785618, -120.625382', 'Lat Long_37.680844, -122.48131', 'City_Monrovia', 'City_Eureka', 'City_Caliente', 'City_Foresthill', 'City_Arcata', 'Lat Long_34.074572, -118.831181', 'City_Portola', 'Lat Long_33.972293, -116.654195', 'Lat Long_37.290606, -119.216328', 'Lat Long_38.240419, -121.587535', 'City_Del Mar', 'Lat Long_38.590035, -121.412455', 'Lat Long_37.980057, -121.801599', 'City_Salton City', 'City_Berkeley', 'City_Castaic', 'City_Bonita', 'Lat Long_36.245926, -118.693138', 'Lat Long_35.666886, -119.186717', 'City_Escalon', 'Lat Long_32.980678, -116.262854', 'Lat Long_33.796568, -116.924723', 'Lat Long_39.786755, -120.445626', 'Lat Long_38.681651, -122.130569', 'City_Calpine', 'City_Fountain Valley', 'Lat Long_41.599978, -122.539381', 'City_South Dos Palos', 'City_Snelling', 'Lat Long_33.537646, -116.291089', 'Lat Long_34.196837, -118.142236', 'City_Big Bear Lake', 'City_Foothill Ranch', 'City_Seal Beach', 'City_Big Sur', 'Senior Citizen_Yes', 'Lat Long_37.972662, -122.491452', 'Lat Long_34.049172, -118.115022', 'Lat Long_34.110124, -119.100972', 'Lat Long_34.127621, -117.717863', 'City_Springville', 'City_San Rafael', 'Lat Long_37.343827, -121.883119', 'City_Frazier Park', 'Lat Long_37.361987, -120.748394', 'Lat Long_38.965804, -122.631779', 'Lat Long_33.766004, -117.786763', 'Lat Long_33.745746, -116.514215', 'Lat Long_37.084697, -121.606417', 'City_Kettleman City', 'City_Rosamond', 'Lat Long_37.387027, -121.897775', 'City_Bayside', 'Lat Long_37.527497, -122.230941', 'Lat Long_32.64164, -116.985026', 'City_North Highlands', 'Tech Support_Yes', 'Lat Long_36.587497, -121.944815', 'Lat Long_36.248708, -121.386617', 'City_Ahwahnee', 'Lat Long_36.413433, -118.854708', 'Lat Long_37.818543, -121.006907', 'City_West Hollywood', 'Lat Long_33.786738, -117.982564', 'City_Klamath', 'City_Jamestown', 'Lat Long_37.304681, -121.809955', 'Lat Long_37.881842, -121.848111', 'Lat Long_40.274302, -124.210902', 'City_Niland', 'City_Lompoc', 'City_Stirling City', 'Lat Long_38.415003, -122.998726', 'Lat Long_38.584505, -121.491956', 'Lat Long_34.757783, -117.33997', 'Lat Long_38.731055, -123.316553', 'Lat Long_38.526941, -122.709096', 'Lat Long_36.722898, -121.633648', 'Lat Long_37.57028, -122.365778', 'Lat Long_33.859171, -118.252272', 'Lat Long_33.570023, -117.773669', 'Lat Long_33.86532, -118.396336', 'Lat Long_34.1692, -118.372498', 'Lat Long_37.421633, -122.009613', 'Lat Long_37.516791, -121.899117', 'City_Lemoore', 'Lat Long_33.82769, -117.102244', 'City_Flournoy', 'Lat Long_33.792791, -117.789749', 'Lat Long_33.762351, -117.488725', 'Lat Long_39.346898, -121.759537', 'Lat Long_33.714829, -117.872941', 'Lat Long_38.490508, -121.284171', 'City_San Andreas', 'Lat Long_37.653947, -118.231443', 'Lat Long_38.859093, -121.182872', 'Lat Long_33.976753, -117.897367', 'Lat Long_32.707892, -117.05512', 'Lat Long_37.74441, -122.486764', 'Lat Long_38.060264, -122.830646', 'Lat Long_37.990574, -120.261821', 'City_Oxnard', 'Lat Long_38.522328, -122.97932', 'City_Llano', 'City_Ukiah', 'Lat Long_38.052209, -122.775567', 'City_La Verne', 'City_Boron', 'Lat Long_37.483535, -119.679414', 'Lat Long_34.702766, -116.093376', 'Lat Long_38.982373, -122.047751', 'City_La Habra', 'City_Fair Oaks', 'City_Rocklin', 'City_West Sacramento', 'Lat Long_36.220761, -120.980777', 'Lat Long_37.515556, -122.502311', 'Lat Long_41.33832, -122.290756', 'Lat Long_41.269521, -123.546958', 'Lat Long_34.028735, -118.317236', 'Lat Long_37.526791, -119.99437', 'City_Piru', 'Lat Long_32.673483, -116.472863', 'City_Blairsden Graeagle', 'City_Gridley', 'Lat Long_34.500091, -117.765862', 'City_Belmont', 'Lat Long_38.419525, -122.521585', 'Lat Long_33.778436, -118.118648', 'City_Big Bar', 'Lat Long_38.104705, -122.247387', 'Lat Long_37.461251, -122.235414', 'Lat Long_38.809804, -122.241383', 'Lat Long_41.468877, -120.54229', 'City_Manton', 'City_Dana Point', 'City_Lindsay', 'Lat Long_37.959706, -121.287669', 'Lat Long_35.886767, -120.608661', 'City_La Canada Flintridge', 'Lat Long_33.054579, -117.25665', 'Lat Long_33.716136, -117.752574', 'Lat Long_34.983808, -117.239306', 'City_Rescue', 'Lat Long_34.051809, -118.383843', 'City_Cardiff By The Sea', 'City_Tulelake', 'Lat Long_33.03933, -115.191857', 'City_Loleta', 'Lat Long_38.954144, -121.482536', 'Lat Long_37.834341, -122.26437', 'Lat Long_34.159534, -116.425984', 'City_San Miguel', 'Lat Long_37.581496, -119.972762', 'City_Cloverdale', 'City_Rio Nido', 'Lat Long_39.281194, -122.226568', 'Lat Long_40.198234, -120.18089', 'Lat Long_37.238758, -121.828375', 'City_Hathaway Pines', 'Lat Long_41.816595, -122.948287', 'City_Chatsworth', 'Lat Long_38.63153, -120.842609', 'Lat Long_37.350284, -121.852855', 'Lat Long_39.449794, -121.936372', 'Lat Long_35.151491, -117.927597', 'City_Visalia', 'City_Canyon Country', 'Lat Long_38.049292, -122.228415', 'City_El Cerrito', 'Lat Long_33.818477, -118.038307', 'Lat Long_32.688506, -116.938632', 'Lat Long_32.605012, -116.97595', 'Lat Long_33.313828, -116.940501', 'City_Dunnigan', 'Lat Long_32.636792, -117.054989', 'Lat Long_38.984756, -121.345074', 'Lat Long_34.137412, -118.207607', 'Lat Long_36.462671, -118.997291', 'Lat Long_33.631119, -117.567346', 'City_Fort Bragg', 'City_Little River', 'City_Studio City', 'City_Tupman', 'Lat Long_37.792489, -122.244314', 'City_Corning', 'City_Alamo', 'Lat Long_39.24124, -120.054765', 'City_Cathedral City', 'Lat Long_39.783747, -120.661032', 'Lat Long_38.192608, -120.957842', 'City_Mentone', 'City_Mecca', 'City_Needles', 'Lat Long_37.873283, -121.292034', 'Lat Long_32.957195, -117.202542', 'City_Calexico', 'Lat Long_38.833554, -121.498102', 'City_Murphys', 'City_Wildomar', 'Lat Long_38.471049, -123.015549', 'City_Dos Rios', 'Lat Long_36.667794, -121.601306', 'Lat Long_33.17494, -117.242761', 'City_Alpine', 'Lat Long_38.875508, -121.765866', 'Lat Long_34.187599, -118.387125', 'City_Jolon', 'City_Rancho Cucamonga', 'City_Goleta', 'City_Atherton', 'City_Marysville', 'City_Prather', 'Lat Long_38.556306, -121.495817', 'City_La Palma', 'Lat Long_37.982716, -120.343732', 'Lat Long_40.03194, -122.176023', 'City_Duarte', 'City_Hughson', 'City_Brownsville', 'City_Hume', 'City_Paso Robles', 'City_Buena Park', 'City_Butte City', 'City_Ranchita', 'Lat Long_34.508417, -116.856103', 'Lat Long_33.679659, -118.016195', 'Lat Long_37.803883, -122.208417', 'City_Gonzales', 'City_Coalinga', 'City_Twain Harte', 'Lat Long_37.186141, -121.843554', 'City_Homewood', 'Lat Long_36.793601, -119.761131', 'Payment Method_Credit card (automatic)', 'City_Colton', 'Lat Long_36.917652, -119.593757', 'Lat Long_33.766476, -117.969795', 'Lat Long_36.689582, -121.758398', 'City_Lucerne', 'Lat Long_37.078873, -122.090386', 'City_Lancaster', 'Lat Long_34.536232, -118.082935', 'City_Doyle', 'Lat Long_37.802071, -122.411004', 'City_Rancho Mirage', 'Lat Long_34.02381, -118.156582', 'Lat Long_36.594542, -119.905245', 'Lat Long_38.888351, -123.239647', 'Lat Long_35.214982, -118.59049', 'Lat Long_40.737431, -124.108897', 'City_Twain', 'City_Mission Viejo', 'City_Pinecrest', 'Lat Long_36.545353, -119.338535', 'Lat Long_37.621458, -121.012295', 'City_Dorris', 'Lat Long_38.724322, -120.991237', 'City_Lake City', 'City_Fontana', 'City_Scotia', 'City_Lakeport', 'City_Mount Hamilton', 'Lat Long_33.362575, -117.299644', 'City_Princeton', 'Lat Long_34.273872, -114.192901', 'City_San Joaquin', 'Lat Long_34.003553, -118.308933', 'Lat Long_39.170376, -120.838404', 'City_Rosemead', 'City_Coulterville', 'Lat Long_38.809175, -121.171375', 'City_Jackson', 'City_Oak Run', 'Lat Long_37.045728, -120.630682', 'City_Avalon', 'Lat Long_41.280341, -120.150381', 'City_Sylmar', 'Lat Long_38.883224, -121.15918', 'Lat Long_34.044639, -118.240413', 'Lat Long_39.495768, -121.747472', 'City_Reedley', 'City_El Centro', 'City_Cedar Glen', 'Lat Long_40.759401, -122.939337', 'Lat Long_34.266389, -118.459744', 'Lat Long_34.04622, -118.053753', 'City_Mojave', 'Lat Long_37.776718, -122.495781', 'Lat Long_40.913192, -123.06597', 'City_Warner Springs', 'Lat Long_40.617614, -122.512861', 'Lat Long_32.782501, -117.01611', 'City_Maxwell', 'Lat Long_40.689243, -122.037023', 'City_Camino', 'Lat Long_37.529656, -120.854357', 'City_Garberville', 'City_Hood', 'Lat Long_36.175255, -119.813805', 'Lat Long_39.457388, -121.818201', 'Lat Long_34.074492, -118.01462', 'City_Pine Valley', 'Lat Long_37.863843, -122.275684', 'City_Quincy', 'City_Carmel By The Sea', 'City_Amador City', 'Lat Long_32.578103, -117.012975', 'Lat Long_34.364153, -118.615583', 'Lat Long_38.636102, -120.522149', 'City_Long Barn', 'Lat Long_37.22565, -122.297533', 'Lat Long_33.887676, -118.127289', 'Lat Long_34.157137, -118.548511', 'Lat Long_34.19829, -118.602203', 'Lat Long_38.013825, -122.039144', 'Streaming Movies_Yes', 'Lat Long_38.475465, -121.443625', 'City_Victorville', 'Lat Long_38.627951, -121.593287', 'City_Ripon', 'City_Five Points', 'Lat Long_37.5923, -120.853288', 'City_Parker Dam', 'Lat Long_34.167236, -116.281511', 'City_Escondido', 'City_Santa Ysabel', 'City_Arvin', 'City_Midpines', 'City_Sultana', 'Lat Long_37.722302, -122.491129', 'Lat Long_37.828416, -122.216005', 'City_Waterford', 'Lat Long_32.71346, -117.236378', 'City_Soquel', 'Lat Long_32.697098, -117.116587', 'City_Tomales', 'City_Topanga', 'Lat Long_34.269449, -118.768471', 'Lat Long_33.712036, -117.950113', 'City_Los Alamitos', 'Lat Long_33.936298, -116.849577', 'City_El Dorado', 'City_Lodi', 'City_Aguanga', 'City_Indian Wells', 'Lat Long_39.637471, -120.226338', 'Lat Long_33.952714, -118.292061', 'Lat Long_34.119363, -117.855059', 'Lat Long_34.286131, -118.435969', 'Lat Long_33.905963, -118.08263', 'Lat Long_38.033219, -121.297433', 'City_Panorama City', 'Lat Long_40.559177, -120.612113', 'Lat Long_35.690535, -118.552784', 'City_Auberry', 'Lat Long_36.635661, -120.288644', 'Lat Long_35.184837, -119.402525', 'City_Anaheim', 'Lat Long_35.930782, -121.189757', 'City_Yucca Valley', 'Lat Long_40.677649, -122.29467', 'Lat Long_37.252057, -119.95783', 'Lat Long_37.284265, -121.827673', 'Lat Long_33.657433, -117.04254', 'City_Montgomery Creek', 'City_Pinole', 'Lat Long_38.093701, -122.276589', 'Lat Long_39.23754, -120.720196', 'Lat Long_34.066367, -118.309868', 'Lat Long_39.904002, -121.527823', 'Lat Long_37.499411, -122.196318', 'Lat Long_34.174493, -117.87068', 'Lat Long_34.341737, -116.539416', 'Lat Long_38.333133, -121.920151', 'Lat Long_37.454924, -122.203168', 'City_Granada Hills', 'Lat Long_39.53222, -122.594879', 'Lat Long_33.912246, -118.236773', 'Lat Long_33.782955, -118.026456', 'Lat Long_34.244411, -117.072654', 'Lat Long_37.713926, -121.928425', 'Lat Long_38.505995, -123.187019', 'City_Mineral', 'Lat Long_33.794209, -118.317354', 'Lat Long_37.900662, -122.052782', 'Lat Long_38.394091, -122.739814', 'Lat Long_38.232389, -122.324944', 'Lat Long_34.459322, -117.629729', 'Lat Long_34.139082, -118.39275', 'Lat Long_35.523991, -118.400432', 'City_Blocksburg', 'City_Norwalk', 'City_Bradley', 'Lat Long_37.031404, -121.981865', 'Lat Long_34.956577, -119.750142', 'City_Montague', 'City_Jamul', 'Lat Long_39.033058, -121.895718', 'Lat Long_34.667815, -117.536183', 'City_Harbor City', 'City_Camptonville', 'Lat Long_37.375816, -119.739935', 'City_Woodland Hills', 'Lat Long_38.499302, -122.92444', 'Lat Long_39.933852, -121.584371', 'City_Jenner', 'Lat Long_35.236549, -120.727344', 'Lat Long_34.110444, -118.156957', 'Lat Long_36.902954, -120.194274', 'Lat Long_35.852892, -118.397782', 'City_Pleasant Grove', 'City_Tarzana', 'Lat Long_35.536115, -120.739231', 'City_Windsor', 'Lat Long_37.587494, -121.862856', 'Lat Long_36.977025, -121.952864', 'City_Miranda', 'City_North Hills', 'Lat Long_34.239636, -118.245259', 'City_Laton', 'Tech Support_No internet service', 'City_Corona', 'City_Cypress', 'Lat Long_34.137742, -114.36514', 'City_Blythe', 'Lat Long_38.803731, -121.043799', 'Lat Long_33.925833, -117.559639', 'City_Fowler', 'City_Penryn', 'City_Berry Creek', 'Lat Long_33.581045, -117.14719', 'City_Willow Creek', 'Lat Long_34.613476, -118.256358', 'Lat Long_34.13658, -118.245839', 'Lat Long_35.634488, -120.293534', 'City_Boonville', 'City_Isleton', 'Lat Long_39.225634, -121.156163', 'City_Santa Clarita', 'City_Hornbrook', 'Lat Long_36.696759, -119.024051', 'City_Red Bluff', 'Lat Long_39.043387, -121.409837', 'Lat Long_38.585826, -121.376263', 'Lat Long_32.759327, -116.99726', 'Lat Long_34.506627, -118.699048', 'Lat Long_37.352911, -122.093002', 'City_Brea', 'Lat Long_39.455555, -123.683979', 'City_Big Creek', 'City_Washington', 'Lat Long_34.046174, -118.446333', 'Lat Long_34.059281, -118.30742', 'Lat Long_34.457541, -119.631072', 'Lat Long_38.348884, -122.51699', 'Lat Long_38.494832, -121.529447', 'City_Porter Ranch', 'Lat Long_33.736387, -118.284363', 'Lat Long_35.869626, -119.498771', 'City_Woodlake', 'Lat Long_32.99356, -117.207121', 'Lat Long_37.349546, -122.134356', 'Lat Long_35.735694, -118.738483', 'Lat Long_34.17051, -118.289463', 'Lat Long_38.470423, -121.114897', 'City_Fall River Mills', 'Lat Long_38.349195, -121.902943', 'Lat Long_33.833181, -118.292062', 'City_Granite Bay', 'Lat Long_34.04597, -117.011825', 'Lat Long_34.136306, -118.26036', 'Lat Long_34.297628, -119.014627', 'Lat Long_35.490705, -119.286833', 'Lat Long_37.333851, -121.891147', 'Lat Long_39.361283, -123.784599', 'City_Douglas City', 'City_Midway City', 'Lat Long_33.970343, -118.171368', 'City_Cool', 'City_Nuevo', 'Lat Long_34.13946, -118.166649', 'Lat Long_40.4785, -124.301372', 'City_Hayward', 'City_Earlimart', 'City_Dos Palos', 'City_Monterey Park', 'City_Ladera Ranch', 'Lat Long_33.940619, -117.9513', 'City_North Palm Springs', 'City_Laguna Beach', 'Lat Long_37.760412, -122.484966', 'City_La Mesa', 'Lat Long_38.274451, -121.259201', 'City_Ben Lomond', 'Lat Long_34.035849, -118.503508', 'City_Casmalia', 'Lat Long_38.240769, -122.901041', 'Lat Long_34.737031, -119.460557', 'City_North San Juan', 'City_Sebastopol', 'City_Planada', 'Lat Long_32.649787, -116.2237', 'Lat Long_39.134075, -123.23422', 'Lat Long_35.858054, -119.305858', 'City_Kirkwood', 'Lat Long_37.590421, -122.306467', 'City_La Jolla', 'Lat Long_35.176236, -120.483243', 'City_Shingletown', 'City_San Ysidro', 'City_Baker', 'Lat Long_37.555473, -122.080312', 'Lat Long_38.432145, -120.77069', 'Lat Long_35.996923, -120.000951', 'Lat Long_33.044541, -116.833922', 'Lat Long_34.108833, -118.229715', 'Lat Long_34.195386, -118.238508', 'Lat Long_32.853743, -117.25034', 'City_Modesto', 'City_Montara', 'Lat Long_35.013299, -116.834092', 'Lat Long_39.108252, -123.645121', 'Lat Long_33.119028, -117.166036', 'Lat Long_34.037037, -118.705803', 'City_Woodland', 'Lat Long_32.730583, -115.501083', 'Lat Long_33.782346, -117.635263', 'Lat Long_37.316807, -120.855753', 'City_Onyx', 'Lat Long_40.531257, -122.148139', 'Lat Long_37.773147, -122.411287', 'Lat Long_37.685052, -121.912061', 'Lat Long_40.946785, -121.719489', 'City_Rough And Ready', 'City_San Leandro', 'City_Nubieber', 'Lat Long_41.042003, -120.506086', 'Lat Long_33.988543, -118.334081', 'Lat Long_36.993666, -119.348267', 'Lat Long_33.991782, -118.479229', 'Lat Long_35.363339, -117.637641', 'City_Lake Elsinore', 'Lat Long_39.84784, -122.544556', 'City_Torrance', 'City_Mokelumne Hill', 'Lat Long_37.956963, -120.863055', 'Lat Long_39.239818, -123.565432', 'City_Echo Lake', 'Lat Long_34.177267, -118.31003', 'City_March Air Reserve Base', 'Lat Long_32.774046, -117.142454', 'Lat Long_39.531028, -121.24807', 'City_San Luis Obispo', 'Lat Long_33.960891, -118.032222', 'City_Cutler', 'Lat Long_38.014457, -122.115432', 'City_Bonsall', 'Lat Long_36.52588, -121.396719', 'City_Kelseyville', 'Lat Long_37.731505, -122.384532', 'Lat Long_33.653338, -117.178271', 'City_Miramonte', 'City_Mountain Ranch', 'Lat Long_39.003358, -121.022539', 'Lat Long_40.336392, -122.448533', 'Lat Long_33.924143, -117.79387', 'Lat Long_34.129677, -117.154277', 'Lat Long_34.406256, -119.726936', 'Lat Long_37.59485, -122.051521', 'City_Santa Fe Springs', 'City_Boulder Creek', 'City_Fellows', 'City_Benicia', 'Lat Long_38.085839, -120.37855', 'Lat Long_33.638645, -116.55783', 'Lat Long_37.394536, -120.890747', 'Lat Long_33.929812, -116.76058', 'Lat Long_35.603913, -117.67828', 'Lat Long_39.913777, -122.289984', 'City_Chester', 'City_Sugarloaf', 'Lat Long_34.098275, -117.967399', 'Lat Long_34.567058, -117.362329', 'Lat Long_39.396585, -121.38029', 'Lat Long_33.801869, -117.995068', 'City_Fortuna', 'Lat Long_38.434362, -122.86891', 'Lat Long_37.03889, -121.528955', 'City_Green Valley Lake', 'Lat Long_38.672638, -121.147403', 'City_Stevinson', 'Lat Long_38.358464, -120.579304', 'City_Coarsegold', 'City_Fields Landing', 'Lat Long_36.29878, -119.201028', 'City_Artesia', 'City_Lemon Grove', 'City_Valencia', 'City_Westminster', 'Lat Long_32.765299, -117.122565', 'City_Reseda', 'Lat Long_39.099204, -121.137962', 'Lat Long_34.127194, -118.295647', 'Lat Long_38.24458, -122.956268', 'Lat Long_33.822295, -118.26411', 'Lat Long_33.680031, -116.171678', 'City_Ballico', 'Lat Long_38.52576, -123.013347', 'Lat Long_33.507255, -117.029473', 'City_Cabazon', 'City_Palos Verdes Peninsula', 'Lat Long_34.030915, -117.273201', 'Lat Long_33.940884, -118.128628', 'City_Tustin', 'Lat Long_33.753146, -118.367459', 'Lat Long_33.384345, -117.072619', 'City_Castro Valley', 'City_Whitethorn', 'Lat Long_41.083464, -121.107929', 'City_Bloomington', 'City_Carpinteria', 'Lat Long_34.207295, -118.400022', 'Lat Long_36.618337, -121.926417', 'City_Trinity Center', 'Lat Long_37.734971, -120.954271', 'Lat Long_38.156971, -120.849231', 'City_Raisin City', 'Online Backup_Yes', 'City_Lake Isabella', 'City_Kernville', 'Lat Long_33.721917, -118.043237', 'Lat Long_37.730269, -119.055813', 'Lat Long_40.665952, -124.240051', 'City_Ravendale', 'Lat Long_38.546999, -120.271114', 'City_Grover Beach', 'Lat Long_34.050198, -118.210946', 'Lat Long_35.097323, -118.171288', 'City_Johannesburg', 'City_Atascadero', 'Lat Long_38.544002, -121.685559', 'City_Capay', 'Lat Long_34.153338, -118.262974', 'City_Hawaiian Gardens', 'City_Santa Clara', 'Lat Long_41.962127, -122.527696', 'Lat Long_34.234912, -118.153729', 'Lat Long_38.830739, -122.196202', 'City_North Fork', 'City_Gualala', 'Online Security_No internet service', 'Lat Long_33.848733, -117.788357', 'City_Durham', 'City_Emigrant Gap', 'Lat Long_34.035602, -117.591528', 'Lat Long_37.871416, -122.246597', 'City_Clearlake', 'City_Forest Knolls', 'City_Glen Ellen', 'Lat Long_34.088017, -118.327168', 'Lat Long_34.097863, -116.594561', 'City_Scotts Valley', 'City_Challenge', 'Lat Long_33.885499, -117.324959', 'City_Benton', 'City_Borrego Springs', 'Lat Long_34.074087, -117.605618', 'Lat Long_36.959731, -120.653519', 'Lat Long_37.939768, -120.188002', 'City_Colusa', 'City_Pearblossom', 'Lat Long_36.78724, -119.827813', 'City_Pacific Grove', 'City_La Puente', 'Lat Long_32.619465, -116.593605', 'City_Coronado', 'Lat Long_37.287758, -119.548156', 'City_Anderson', 'Lat Long_36.185471, -119.375243', 'City_Orosi', 'City_Pomona', 'Lat Long_38.325599, -122.642352', 'Lat Long_37.687264, -122.15728', 'Lat Long_37.963995, -122.288296', 'Lat Long_35.634222, -120.728341', 'City_Burney', 'Lat Long_37.791481, -121.903253', 'Lat Long_38.067204, -122.524004', 'Lat Long_39.176595, -121.291692', 'Lat Long_38.922812, -121.312005', 'City_Morro Bay', 'City_Mckinleyville', 'Lat Long_34.243088, -116.830015', 'City_Rancho Cordova', 'Lat Long_34.146635, -118.139225', 'City_Inglewood', 'Lat Long_32.76501, -117.19938', 'Lat Long_36.878364, -121.629781', 'Lat Long_37.791222, -122.402241', 'City_Deer Park', 'Lat Long_38.733714, -120.795213', 'Lat Long_41.444606, -123.471895', 'City_Yucaipa', 'Lat Long_33.098018, -117.258203', 'City_Monte Rio', 'City_Redondo Beach', 'Lat Long_34.238162, -117.534306', 'Lat Long_34.142747, -117.300864', 'Lat Long_33.890853, -118.297967', 'City_Randsburg', 'City_Lincoln', 'Lat Long_34.282704, -118.312929', 'City_Lake Forest', 'Lat Long_40.692523, -122.369876', 'Lat Long_37.521708, -120.426843', 'City_Farmersville', 'Lat Long_34.659579, -118.584212', 'City_Fiddletown', 'City_Lone Pine', 'Lat Long_37.449551, -122.183762', 'Lat Long_37.739113, -122.175602', 'City_Tranquillity', 'Lat Long_34.10097, -117.57882', 'City_Rancho Santa Fe', 'City_Culver City', 'City_San Clemente', 'Lat Long_34.062125, -118.315709', 'Lat Long_36.64152, -121.622188', 'Lat Long_39.58458, -121.093256', 'Lat Long_37.99272, -122.575026', 'Lat Long_33.688546, -117.788091', 'City_Leggett', 'Lat Long_34.1678, -116.86433', 'Lat Long_33.748635, -117.906125', 'City_Valyermo', 'Lat Long_35.676978, -118.101378', 'Lat Long_33.830453, -118.384565', 'City_San Carlos', 'City_Gardena', 'Lat Long_36.303666, -119.825657', 'City_Shasta Lake', 'City_Inyokern', 'Lat Long_34.024405, -117.898722', 'Lat Long_34.08111, -117.853935', 'Lat Long_38.851842, -120.076204', 'Lat Long_34.223244, -119.18012', 'Lat Long_37.246064, -121.749494', 'Lat Long_33.606899, -117.717854', 'Lat Long_37.776523, -122.219268', 'Lat Long_33.958149, -118.308441', 'City_Banning', 'City_Stonyford', 'Lat Long_35.939068, -119.043666', 'Lat Long_39.178337, -120.162806', 'Lat Long_34.178483, -118.431791', 'City_Igo', 'Lat Long_38.591134, -121.161585', 'Lat Long_38.684437, -121.055634', 'City_Sonora', 'Lat Long_35.16207, -119.194488', 'Lat Long_36.488056, -120.407691', 'Lat Long_37.996462, -122.293716', 'City_Pebble Beach', 'Lat Long_34.630356, -120.032564', 'City_Seeley', 'Lat Long_34.137411, -118.328915', 'Lat Long_33.806708, -117.02007', 'Lat Long_40.923558, -122.059933', 'City_Oro Grande', 'Lat Long_35.449881, -118.841442', 'Lat Long_38.311609, -121.554034', 'Lat Long_37.791998, -122.408653', 'City_Georgetown', 'Lat Long_34.460197, -119.802602', 'Lat Long_33.744119, -118.31448', 'City_Pioneer', 'Lat Long_33.823943, -118.111335', 'Lat Long_38.184914, -120.364085', 'City_Arnold', 'City_Lakeside', 'City_Adelanto', 'Lat Long_33.945318, -117.992066', 'City_Oregon House', 'City_Mendota', 'Lat Long_41.505916, -120.152505', 'Lat Long_38.384648, -121.578701', 'Lat Long_39.903272, -121.843567', 'Lat Long_38.545775, -120.743325', 'City_Running Springs', 'Lat Long_32.726627, -116.994608', 'Lat Long_34.002642, -118.287596', 'Lat Long_32.787836, -117.232376', 'City_San Diego', 'Lat Long_37.941456, -122.320968', 'City_Sunset Beach', 'Lat Long_41.737962, -123.07557', 'City_Sierraville', 'Lat Long_40.883853, -122.418258', 'City_Hacienda Heights', 'Lat Long_33.921793, -118.140588', 'City_Thornton', 'City_Napa', 'City_Branscomb', 'City_Pinon Hills', 'Lat Long_38.626128, -121.328011', 'City_Kings Beach', 'City_Termo', 'City_Pasadena', 'Lat Long_34.943523, -120.256729', 'Lat Long_37.007238, -119.505661', 'Lat Long_41.465121, -122.380947', 'City_San Martin', 'City_Porterville', 'City_Soda Springs', 'Lat Long_32.898613, -117.202937', 'Lat Long_37.4695, -120.672724', 'Lat Long_37.266388, -122.26308', 'City_Taylorsville', 'Lat Long_39.564113, -120.868836', 'Lat Long_36.995162, -120.955099', 'Lat Long_34.907911, -119.234281', 'Lat Long_33.527605, -116.666551', 'Lat Long_38.715498, -121.363411', 'Lat Long_36.600185, -119.175655', 'City_Phelan', 'Lat Long_37.244307, -119.470256', 'Lat Long_37.713152, -121.08739', 'City_Elk Grove', 'Lat Long_41.924174, -123.260788', 'City_Le Grand', 'Lat Long_34.139402, -118.128658', 'City_Big Bear City', 'Lat Long_38.161321, -122.271588', 'City_Encinitas', 'Lat Long_36.869584, -118.189241', 'City_Thousand Palms', 'Lat Long_34.231318, -117.662032', 'Lat Long_33.889605, -115.257009', 'City_La Quinta', 'City_Orick', 'City_Ontario', 'Lat Long_38.336216, -120.76901', 'City_Nipton', 'City_Carnelian Bay', 'Lat Long_33.947305, -118.439841', 'City_Weimar', 'City_Hollister', 'City_San Dimas', 'City_Meridian', 'City_San Gregorio', 'Lat Long_38.71967, -121.862416', 'City_Winchester', 'Lat Long_33.818, -117.974404', 'Lat Long_36.523619, -119.386868', 'Lat Long_33.907361, -117.109972', 'City_Alta', 'Churn Label_Yes', 'City_Diamond Bar', 'Lat Long_34.019323, -118.391902', 'City_Aromas', 'Lat Long_33.611945, -117.665867', 'Lat Long_34.049671, -117.468896', 'Lat Long_38.618347, -122.908422', 'City_Pacoima', 'Lat Long_40.497283, -123.93037', 'Lat Long_37.946282, -121.139499', 'Lat Long_37.787186, -122.14633', 'Lat Long_34.223768, -118.445461', 'City_Valley Ford', 'Lat Long_38.183918, -120.898817', 'Lat Long_36.623632, -119.741322', 'City_Big Pine', 'Lat Long_37.691561, -122.445202', 'City_Stinson Beach', 'Lat Long_33.998471, -117.973758', 'Lat Long_37.704267, -119.607001', 'Lat Long_36.296851, -117.865469', 'Lat Long_36.622237, -119.521126', 'City_Saint Helena', 'City_Rio Vista', 'Lat Long_33.012751, -117.200617', 'Lat Long_34.070291, -118.349191', 'Lat Long_37.921034, -122.341798', 'City_Capitola', 'Lat Long_34.145695, -117.95982', 'Lat Long_33.62251, -117.927024', 'Lat Long_37.538309, -122.305109', 'Lat Long_38.010092, -122.689442', 'City_Weed', 'Lat Long_33.817473, -117.810462', 'City_Raymond', 'Lat Long_36.878709, -119.7645', 'City_Greenbrae', 'City_Castella', 'Lat Long_34.281911, -118.556218', 'Lat Long_34.168686, -118.057505', 'City_Angwin', 'Lat Long_36.991762, -119.242874', 'Lat Long_32.984395, -117.013454', 'City_Sheridan', 'Lat Long_34.202494, -118.448048', 'City_Keene', 'City_Somerset', 'Lat Long_33.942895, -117.725644', 'City_Clarksburg', 'City_Taft', 'City_Upland', 'Lat Long_33.988572, -118.186565', 'Lat Long_37.601248, -122.403099', 'Lat Long_37.890145, -119.184087', 'Lat Long_38.766036, -120.209673', 'Lat Long_34.030578, -118.399613', 'Lat Long_37.327069, -121.916819', 'Lat Long_38.200231, -121.235034', 'Lat Long_33.976328, -117.319786', 'City_Crescent Mills', 'Lat Long_40.507272, -120.338228', 'Lat Long_37.648647, -119.231447', 'City_Woodacre', 'City_Half Moon Bay', 'City_Witter Springs', 'Lat Long_38.32153, -120.236358', 'Lat Long_40.426679, -121.850421', 'Lat Long_33.845706, -118.012204', 'Lat Long_34.026334, -118.474222', 'Lat Long_34.122671, -118.112911', 'Lat Long_36.397745, -120.119911', 'Lat Long_36.719141, -119.202677', 'Lat Long_41.764869, -122.671316', 'City_Tecate', 'Lat Long_32.79697, -116.969082', 'Lat Long_38.685069, -121.543709', 'Lat Long_33.787796, -117.875928', 'Lat Long_34.048013, -118.293953', 'Lat Long_38.047746, -121.030499', 'Lat Long_33.83796, -117.870494', 'Lat Long_37.872902, -122.303708', 'City_Samoa', 'Lat Long_34.072121, -117.698319', 'City_Occidental', 'Lat Long_39.227434, -120.091806', 'City_Crescent City', 'Lat Long_33.944624, -118.192615', 'Lat Long_34.132275, -117.611478', 'Lat Long_37.750021, -122.415201', 'City_Manhattan Beach', 'City_Pope Valley', 'City_Sun Valley', 'City_Sausalito', 'City_Bishop', 'City_Olema', 'Lat Long_33.781086, -118.199049', 'Lat Long_34.936, -120.594655', 'City_Arcadia', 'Lat Long_38.237018, -122.77872', 'Lat Long_33.830431, -118.074071', 'City_Valley Center', 'City_Calabasas', 'Lat Long_34.103578, -117.04054', 'Lat Long_34.712708, -117.889656', 'Lat Long_33.162624, -117.170863', 'City_Sonoma', 'Lat Long_40.142256, -123.852927', 'City_Westwood', 'Lat Long_32.677716, -117.047666', 'Lat Long_37.556094, -122.272437', 'Lat Long_37.7795, -122.419233', 'City_Seaside', 'City_Descanso', 'Lat Long_34.079449, -118.548306', 'City_Beaumont', 'City_Mill Creek', 'Lat Long_33.529047, -117.701175', 'Lat Long_39.031876, -120.811141', 'Lat Long_40.524535, -122.647172', 'Lat Long_35.358953, -118.527064', 'City_Livermore', 'Lat Long_40.343213, -121.815412', 'Lat Long_36.993451, -122.098858', 'City_Coachella', 'Lat Long_38.7904, -121.236973', 'City_Huntington Beach', 'Lat Long_33.877639, -117.961212', 'City_Avery', 'Lat Long_40.053159, -123.995867', 'Lat Long_33.738543, -117.785046', 'City_Middletown', 'City_Westley', 'Lat Long_33.977468, -118.445475', 'City_Elmira', 'Lat Long_34.141146, -117.655583', 'Lat Long_38.400264, -120.641274', 'Lat Long_33.849263, -116.382778', 'Lat Long_33.079834, -117.134275', 'City_Richvale', 'Lat Long_38.35363, -121.44195', 'Lat Long_37.758019, -122.138678', 'Lat Long_38.489273, -120.891614', 'Lat Long_34.489983, -120.091246', 'City_Hyampom', 'Lat Long_41.486953, -120.913975', 'City_Albion', 'Lat Long_36.186867, -120.387793', 'Lat Long_33.644849, -117.684254', 'Lat Long_40.077028, -121.494168', 'Lat Long_33.728273, -118.085304', 'Lat Long_37.95338, -122.076886', 'City_Salida', 'Lat Long_38.065359, -122.665566', 'Lat Long_36.27688, -117.033326', 'City_Elverta', 'Lat Long_37.42765, -121.945416', 'Lat Long_32.909873, -116.906774', 'City_Moorpark', 'Lat Long_38.619049, -121.517552', 'Lat Long_37.971421, -121.971504', 'Lat Long_41.10831, -121.360362', 'Lat Long_34.005439, -118.477507', 'Lat Long_37.716186, -121.025836', 'Lat Long_37.809014, -122.269739', 'City_Mendocino', 'City_Posey', 'City_Garden Grove', 'Lat Long_37.866009, -122.286228', 'Lat Long_33.309852, -116.823091', 'City_Avila Beach', 'City_Smith River', 'City_Courtland', 'Lat Long_33.755039, -116.741796', 'City_Twin Bridges', 'City_San Simeon', 'Lat Long_33.819385, -117.600213', 'City_Hickman', 'Online Security_Yes', 'Lat Long_40.166028, -123.584144', 'City_Hemet', 'City_Gasquet', 'Lat Long_40.587919, -122.464732', 'City_San Ardo', 'Lat Long_33.323705, -116.626907', 'Lat Long_33.833686, -117.513063', 'City_The Sea Ranch', 'Lat Long_38.578604, -122.024579', 'City_Gustine', 'City_Lytle Creek', 'Lat Long_36.863303, -121.781632', 'Lat Long_37.897743, -122.263124', 'Lat Long_34.19225, -118.776874', 'Lat Long_37.704384, -122.126703', 'Lat Long_38.805481, -120.13287', 'Lat Long_33.897122, -118.164432', 'Lat Long_32.790282, -115.689559', 'Lat Long_37.680968, -121.446049', 'Lat Long_40.363446, -123.835041', 'Lat Long_34.043144, -118.251977', 'City_Corona Del Mar', 'Lat Long_34.108455, -118.362081', 'Lat Long_35.140938, -119.051348', 'Lat Long_39.440687, -121.263583', 'Lat Long_33.839989, -116.659215', 'Lat Long_41.081847, -122.700545', 'City_Dobbins', 'Lat Long_33.889632, -118.39737', 'Lat Long_34.11572, -118.192754', 'City_Marina', 'Lat Long_34.1528, -118.000482', 'Lat Long_38.93706, -123.118111', 'City_Tujunga', 'Lat Long_38.055562, -120.456298', 'Lat Long_36.798882, -120.019511', 'Lat Long_34.079934, -118.046695', 'City_Grimes', 'Lat Long_34.741406, -118.38111', 'City_Bella Vista', 'Lat Long_38.625096, -121.383658', 'Lat Long_39.197215, -120.83679', 'City_Magalia', 'City_Glencoe', 'Lat Long_39.955587, -123.681175', 'City_Willits', 'Lat Long_39.756049, -123.358701', 'Lat Long_35.215731, -119.57013', 'Lat Long_39.624561, -121.552866', 'Lat Long_35.059695, -120.604741', 'Lat Long_37.34667, -121.910019', 'City_Fish Camp', 'Lat Long_34.408161, -118.865111', 'Lat Long_33.25283, -116.986079', 'City_Sherman Oaks', 'Lat Long_32.677097, -116.304991', 'City_Hoopa', 'City_Lynwood', 'City_River Pines', 'Lat Long_34.178068, -118.615714', 'City_National City', 'City_Yreka', 'Lat Long_38.235021, -122.557332', 'City_Redding', 'Lat Long_37.671806, -121.007575', 'City_Gold Run', 'Lat Long_38.734997, -121.463719', 'City_Browns Valley', 'Lat Long_35.478736, -115.516984', 'City_Linden', 'Lat Long_33.920907, -117.489426', 'Lat Long_34.085807, -118.206617', 'City_Point Reyes Station', 'Lat Long_33.881158, -117.854783', 'Lat Long_33.391181, -118.421305', 'Lat Long_38.34719, -122.697822', 'City_Bellflower', 'Lat Long_36.625792, -119.672483', 'Lat Long_37.676249, -122.132415', 'City_Bangor', 'Lat Long_37.750553, -122.197175', 'Lat Long_41.405193, -123.008567', 'Lat Long_34.903052, -118.411251', 'City_Pauma Valley', 'City_Hilmar', 'City_Huron', 'Lat Long_37.007882, -122.065975', 'Lat Long_37.316146, -121.936285', 'Lat Long_38.53508, -121.444144', 'City_Groveland', 'Lat Long_37.848641, -122.515692', 'Lat Long_38.027218, -122.23463', 'Lat Long_33.982787, -117.057627', 'Lat Long_33.680302, -117.833296', 'Lat Long_40.294034, -120.512622', 'City_Milford', 'City_Lafayette', 'Lat Long_38.392821, -121.799917', 'Lat Long_34.17847, -118.459472', 'Lat Long_39.681488, -121.83721', 'City_Port Costa', 'City_Bakersfield', 'Lat Long_40.839958, -124.003757', 'City_Vernalis', 'Lat Long_36.041315, -118.188235', 'City_Bell', 'City_Santa Barbara', 'Lat Long_34.008293, -118.346766', 'City_Antelope', 'Lat Long_34.018354, -117.85492', 'City_Altadena', 'City_Meadow Valley', 'City_Edwards', 'Lat Long_38.581354, -122.296283', 'Lat Long_39.806141, -123.531098', 'City_Merced', 'Lat Long_41.701223, -124.003393', 'City_Buellton', 'City_Newberry Springs', 'Lat Long_35.846067, -119.004073', 'Lat Long_34.758699, -120.275839', 'Lat Long_33.752524, -118.210737', 'Lat Long_33.148116, -117.306043', 'City_Covelo', 'City_Friant', 'City_Tahoma', 'City_Forbestown', 'Lat Long_34.015481, -118.493231', 'Lat Long_36.974575, -121.991149', 'City_Lockeford', 'Lat Long_40.854512, -123.450097', 'City_Loomis', 'Lat Long_40.267158, -123.805913', 'City_Essex', 'City_Birds Landing', 'Lat Long_33.807882, -118.347957', 'Lat Long_34.845861, -118.885163', 'Lat Long_34.227846, -119.079903', 'Lat Long_39.342498, -120.247127', 'Lat Long_38.735789, -119.85798', 'Lat Long_33.783047, -118.1486', 'City_Truckee', 'City_Julian', 'Lat Long_33.902045, -118.008961', 'City_Markleeville', 'City_Firebaugh', 'Lat Long_34.172071, -118.946262', 'Lat Long_37.28682, -121.723877', 'Lat Long_33.345825, -115.596574', 'Lat Long_37.890274, -122.295192', 'City_Mt Baldy', 'City_Paskenta', 'City_Lemon Cove', 'Lat Long_39.342587, -121.249833', 'Lat Long_37.785033, -120.776141', 'Lat Long_34.209532, -118.577563', 'Lat Long_33.017518, -117.118456', 'Lat Long_34.066303, -118.435479', 'Lat Long_34.402343, -119.094824', 'Lat Long_36.125529, -120.864443', 'Lat Long_37.329725, -120.306399', 'City_Lockwood', 'Lat Long_38.513484, -120.704613', 'Lat Long_34.486835, -117.362274', 'City_Playa Del Rey', 'Lat Long_33.4725, -117.584273', 'Lat Long_33.873395, -118.37019', 'Lat Long_37.378541, -122.020456', 'City_Susanville', 'Lat Long_34.505273, -117.955054', 'Phone Service_Yes', 'City_Yorkville', 'Lat Long_39.724433, -123.767578', 'City_Davenport', 'Lat Long_36.527243, -118.594938', 'Lat Long_38.788898, -121.608624', 'Lat Long_33.784597, -117.844535', 'Lat Long_33.879983, -117.895482', 'Device Protection_Yes', 'City_Imperial Beach', 'Paperless Billing_Yes', 'City_Trona', 'Lat Long_38.105733, -122.186338', 'City_Westlake Village', 'Gender_Male', 'Lat Long_36.590415, -118.073839', 'Lat Long_38.9386, -120.785514', 'Lat Long_34.115192, -118.61017', 'Lat Long_34.059722, -117.39104', 'City_Mountain Center', 'City_Riverdale', 'Lat Long_38.196497, -120.61689', 'Lat Long_32.747484, -117.166877', 'Lat Long_38.154823, -121.601358', 'Lat Long_34.146957, -118.432138', 'City_Fresno', 'City_O Neals', 'City_Cerritos', 'Lat Long_34.457829, -116.139589', 'Lat Long_37.965695, -121.260051', 'Lat Long_33.761894, -117.120868', 'Lat Long_34.029043, -118.239504', 'Lat Long_38.005839, -122.638155', 'Lat Long_38.287136, -122.02711', 'Lat Long_39.424957, -122.039307', 'Lat Long_33.828779, -117.848299', 'Lat Long_35.591387, -121.032256', 'Lat Long_39.117018, -120.212535', 'Lat Long_35.383937, -119.020428', 'Lat Long_33.60693, -117.644253', 'Lat Long_32.852947, -114.850784', 'Lat Long_34.057256, -117.667677', 'City_Pollock Pines', 'Lat Long_35.349241, -116.770281', 'City_Burnt Ranch', 'City_Hercules', 'Lat Long_36.931654, -121.752383', 'Lat Long_35.55647, -118.244914', 'Lat Long_33.634626, -117.874882', 'Lat Long_41.171578, -120.913161', 'City_Sun City', 'Lat Long_34.050322, -118.147037', 'Lat Long_38.375325, -121.507935', 'Internet Service_No', 'Lat Long_34.15136, -118.364786', 'Lat Long_37.797526, -122.464531', 'City_Chualar', 'Lat Long_33.200369, -116.192313', 'Lat Long_33.797638, -118.11662', 'City_Mariposa', 'Lat Long_37.84771, -120.486589', 'City_Stevenson Ranch', 'Lat Long_34.370378, -118.504118', 'Lat Long_34.174215, -118.345928', 'Lat Long_32.830852, -116.444601', 'Lat Long_34.167926, -118.267539', 'Lat Long_38.265899, -121.939461', 'City_Tipton', 'Lat Long_38.431407, -120.8421', 'City_Nicasio', 'Lat Long_33.999992, -117.535395', 'Lat Long_33.976678, -118.065875', 'City_Gazelle', 'City_Geyserville', 'Lat Long_40.012675, -120.101857', 'City_Pittsburg', 'City_Phillipsville', 'Lat Long_38.486938, -121.395805', 'Lat Long_34.502432, -118.41459', 'Lat Long_38.688764, -121.457596', 'Lat Long_37.873916, -122.20522', 'Lat Long_33.8681, -118.067402', 'Lat Long_41.813521, -121.492666', 'Lat Long_33.954017, -118.402447', 'Lat Long_33.97803, -118.217141', 'City_Clio', 'City_South Gate', 'City_Fawnskin', 'Lat Long_33.798266, -118.300237', 'City_Orinda', 'Lat Long_37.245505, -118.062943', 'City_La Honda', 'City_Mission Hills', 'Lat Long_34.162515, -118.203869', 'City_Olivehurst', 'City_El Nido', 'Lat Long_36.525703, -120.952122', 'Lat Long_34.052917, -118.255178', 'Lat Long_38.392686, -120.415951', 'Lat Long_41.336354, -124.044354', 'Lat Long_37.339533, -121.777179', 'Lat Long_34.224377, -118.632656', 'Lat Long_37.386978, -122.177746', 'Lat Long_38.736685, -121.251984', 'Lat Long_38.606703, -120.586659', 'City_Lathrop', 'Lat Long_37.550074, -118.837167', 'Lat Long_33.914775, -118.348083', 'City_Clements', 'Lat Long_33.90139, -118.315697', 'City_Columbia', 'City_Colfax', 'Lat Long_33.956445, -118.358634', 'Lat Long_38.184583, -119.286558', 'City_Oak View', 'City_Hopland', 'City_Fort Bidwell', 'City_Costa Mesa', 'Lat Long_38.966713, -123.586412', 'Lat Long_32.847336, -116.997605', 'City_Orange Cove', 'City_Montebello', 'Lat Long_38.731771, -123.064272', 'City_Valley Springs', 'Lat Long_33.958134, -118.330905', 'City_San Pedro', 'City_Vallecito', 'City_Parlier', 'Lat Long_41.867908, -123.794144', 'Lat Long_33.893823, -117.531446', 'City_Selma', 'Contract_Two year', 'City_Helendale', 'Lat Long_36.456091, -119.486225', 'City_Fairfax', 'Lat Long_38.035707, -122.196821', 'City_Folsom', 'City_Ludlow', 'Lat Long_39.423046, -120.984472', 'City_Ivanhoe', 'City_Rio Linda', 'Lat Long_34.038983, -117.991372', 'Lat Long_32.730264, -116.950963', 'Lat Long_37.950248, -122.022455', 'Internet Service_Fiber optic', 'Lat Long_37.375156, -121.795867', 'Lat Long_34.037251, -118.423573', 'Lat Long_34.031441, -117.936436', 'City_Paicines', 'City_Millbrae', 'City_Van Nuys', 'Lat Long_33.990646, -117.663025', 'Lat Long_38.140719, -121.838298', 'Lat Long_34.201108, -116.593456', 'Lat Long_37.306612, -122.080621', 'City_Citrus Heights', 'Lat Long_33.521447, -117.602555', 'City_Cambria', 'Lat Long_38.128087, -121.4078', 'City_El Sobrante', 'Lat Long_39.381174, -121.21191', 'City_Darwin', 'Lat Long_37.218705, -121.762429', 'Lat Long_34.624399, -120.137875', 'City_Paradise', 'City_Carmel', 'Lat Long_35.279984, -120.824288', 'Lat Long_37.114335, -122.237162', 'City_Bieber', 'City_Etna', 'City_Moss Landing', 'Lat Long_34.95703, -117.73045', 'City_Catheys Valley', 'Lat Long_34.090925, -118.128164', 'City_Placentia', 'City_Applegate', 'Lat Long_37.380662, -122.086022', 'Lat Long_39.873371, -123.741474', 'City_Cedarville', 'Lat Long_34.165783, -118.399795', 'City_Potter Valley', 'Lat Long_33.819814, -118.222416', 'Lat Long_37.212191, -119.749323', 'Lat Long_33.22784, -117.200024', 'Lat Long_41.266008, -120.490731', 'Lat Long_35.451402, -119.488413', 'City_Squaw Valley', 'Lat Long_37.070177, -122.010077', 'Lat Long_39.461768, -121.195825', 'City_Arroyo Grande', 'Lat Long_33.703976, -117.824172', 'City_Round Mountain', 'Lat Long_34.183286, -117.221722', 'City_Litchfield', 'Lat Long_34.14649, -117.849815', 'City_Biggs', 'City_Whittier', 'City_Norco', 'City_Byron', 'City_Carlsbad', 'Lat Long_37.750822, -121.238423', 'Lat Long_38.925545, -122.549083', 'Lat Long_33.830099, -118.182239', 'City_Placerville', 'Lat Long_38.493888, -122.777141', 'City_Shasta', 'City_El Cajon', 'City_Kingsburg', 'Lat Long_34.445239, -117.894868', 'Lat Long_34.39583, -117.734568', 'Lat Long_38.549822, -121.266725', 'City_Rialto', 'Lat Long_40.557314, -124.081662', 'Lat Long_38.00474, -122.663717', 'Lat Long_34.150354, -118.518292', 'Lat Long_38.567594, -121.437507', 'Lat Long_37.331762, -122.341444', 'Lat Long_36.625114, -121.823565', 'City_Spring Valley', 'Lat Long_37.862128, -122.075197', 'Payment Method_Electronic check', 'Lat Long_39.273096, -122.050763', 'Lat Long_38.113533, -122.11926', 'Lat Long_41.950683, -124.097094', 'City_Rancho Santa Margarita', 'City_Wilton', 'Lat Long_33.194742, -117.29032', 'Lat Long_33.667145, -117.732135', 'Lat Long_34.007353, -118.033683', 'Lat Long_38.801936, -122.938935', 'Lat Long_39.225694, -123.717354', 'City_Rio Oso', 'City_Navarro', 'Lat Long_38.508735, -121.678813', 'Lat Long_39.02741, -121.614982', 'City_Ferndale', 'City_Brawley', 'City_Copperopolis', 'Lat Long_40.181279, -120.392967', 'Lat Long_38.631489, -120.015167', 'Lat Long_33.88151, -118.234451', 'Lat Long_38.69549, -121.307864', 'Lat Long_36.751489, -119.68072', 'City_Dillon Beach', 'City_Lawndale', 'City_Madison', 'Lat Long_34.2112, -118.230625', 'Lat Long_37.285677, -122.224165', 'Lat Long_38.264262, -120.515133', 'Lat Long_33.69887, -117.25071', 'Lat Long_41.027281, -120.669427', 'Lat Long_38.460517, -122.790335', 'Lat Long_38.748316, -120.675512', 'Lat Long_33.695532, -116.310571', 'Lat Long_34.291273, -118.505104', 'Lat Long_34.114772, -118.089431', 'City_Shingle Springs', 'City_Oroville', 'City_Keyes', 'Lat Long_34.129058, -118.759788', 'Lat Long_33.9108, -117.398153', 'Lat Long_34.647959, -117.296957', 'City_Capistrano Beach', 'Lat Long_37.17277, -119.2997', 'Lat Long_32.825086, -117.199424', 'City_Concord', 'Lat Long_33.600987, -117.862734', 'Lat Long_34.064073, -117.166158', 'Lat Long_40.584991, -124.121504', 'Lat Long_33.000269, -117.072093', 'City_Morongo Valley', 'Lat Long_37.497915, -122.267361', 'City_Idyllwild', 'Lat Long_39.194539, -120.988066', 'City_Hermosa Beach', 'City_Greenview', 'Lat Long_34.55082, -117.122396', 'City_Watsonville', 'City_Lebec', 'Lat Long_34.274846, -116.937581', 'City_Hayfork', 'Lat Long_37.820894, -122.369725', 'City_Somes Bar', 'Lat Long_40.94338, -123.831799', 'Lat Long_35.74837, -117.384948', 'City_El Portal', 'Lat Long_39.937017, -121.058043', 'City_Campo Seco', 'Lat Long_38.691607, -121.602284', 'Lat Long_37.924838, -122.289145', 'City_Littlerock', 'Lat Long_33.713891, -116.237257', 'Lat Long_38.671295, -121.388251', 'Lat Long_41.729079, -120.225025', 'City_Elk', 'City_Newport Coast', 'City_Salyer', 'City_Rohnert Park', 'Lat Long_36.554618, -121.922239', 'Lat Long_36.768774, -119.762633', 'Lat Long_37.770533, -122.445121', 'Lat Long_38.421458, -122.365048', 'City_Helm', 'Lat Long_37.089111, -122.062213', 'Lat Long_38.343282, -122.9755', 'Lat Long_39.578792, -120.780786', 'Lat Long_39.562239, -121.14836', 'City_Sierra City', 'Lat Long_36.624338, -121.615669', 'City_Alderpoint', 'Lat Long_37.633361, -121.862395', 'City_Tulare', 'City_Hesperia', 'Lat Long_33.987945, -118.370442', 'Lat Long_34.422519, -118.420717', 'Lat Long_33.787298, -117.320676', 'Lat Long_38.598936, -120.963092', 'City_Patterson', 'Lat Long_32.716007, -117.117462', 'Lat Long_34.199787, -118.68493', 'Lat Long_33.571259, -117.731917', 'City_Hinkley', 'Lat Long_34.441398, -119.513163', 'City_Fallbrook', 'Lat Long_40.722733, -122.109666', 'Online Backup_No internet service', 'City_Olancha', 'City_Soledad', 'Lat Long_37.902422, -121.440029', 'City_Paramount', 'City_Carmel Valley', 'Lat Long_37.393554, -121.965114', 'Lat Long_37.458367, -119.345011', 'Lat Long_33.782068, -118.262263', 'City_Caruthers', 'City_Happy Camp', 'Lat Long_33.989524, -118.089299', 'City_Pixley', 'City_San Juan Bautista', 'City_Clearlake Oaks', 'Lat Long_35.559617, -118.925185', 'Lat Long_34.159007, -118.087353', 'Lat Long_37.416159, -122.131337', 'Multiple Lines_Yes', 'City_Tollhouse', 'Lat Long_33.643095, -117.810896', 'City_Greenfield', 'City_Del Rey', 'City_Belvedere Tiburon', 'Lat Long_38.689174, -121.218435', 'City_Dutch Flat', 'City_Santa Monica', 'Lat Long_34.049841, -118.33846', 'Lat Long_39.467828, -120.841386', 'City_Los Gatos', 'City_Chico', 'City_Santa Paula', 'City_Valley Village', 'Lat Long_40.171312, -121.120605', 'City_Lakeshore', 'Lat Long_38.488431, -122.752839', 'Lat Long_33.351059, -117.420557', 'Lat Long_34.437945, -119.77191', 'Lat Long_36.654614, -119.903674', 'City_Elk Creek', 'Lat Long_36.497895, -119.285484', 'City_Oakley', 'Lat Long_34.076259, -118.310715', 'City_Thousand Oaks', 'Lat Long_40.440636, -124.098739', 'Lat Long_34.875144, -116.821698', 'City_Surfside', 'Lat Long_36.739385, -119.753649', 'City_Kyburz', 'City_Weaverville', 'Lat Long_34.137319, -118.029837', 'Lat Long_37.971751, -122.611873', 'City_Oakhurst', 'Lat Long_33.482243, -116.827173', 'Lat Long_37.991259, -122.214945', 'Lat Long_32.89325, -117.087091', 'Lat Long_35.842889, -121.004862', 'City_Willows', 'Lat Long_37.672906, -120.946594', 'Lat Long_38.921333, -120.897718', 'Lat Long_40.367964, -122.937379', 'Lat Long_36.047414, -119.344304', 'City_Herlong', 'Lat Long_35.28952, -116.092214', 'Lat Long_34.17211, -115.769773', 'City_Nevada City', 'City_Stanford', 'City_Sunland', 'Lat Long_34.581308, -118.931948', 'Lat Long_37.147198, -121.120161', 'Lat Long_37.750778, -121.13238', 'City_Brookdale', 'Lat Long_38.554383, -122.474773', 'Lat Long_40.547857, -123.187265', 'City_Chino', 'Lat Long_41.163637, -123.704841', 'City_Delhi', 'Lat Long_37.348129, -121.98469', 'City_Grass Valley', 'Lat Long_35.652242, -119.4464', 'Lat Long_38.512569, -121.495184', 'Lat Long_40.346634, -120.386422', 'City_Delano', 'Lat Long_36.789213, -119.140338', 'City_Mount Laguna', 'Lat Long_35.073777, -118.652112', 'Lat Long_38.983388, -120.988814', 'Lat Long_37.666587, -120.411517', 'Lat Long_33.760458, -118.129725', 'Lat Long_35.861928, -118.636698', 'City_Marshall', 'Lat Long_36.936228, -121.785559', 'Lat Long_37.954089, -121.329761', 'City_San Pablo', 'Lat Long_37.305622, -122.000887', 'Lat Long_39.245911, -123.77214', 'Lat Long_40.582399, -122.195512', 'Lat Long_33.705836, -117.318204', 'Partner_Yes', 'Lat Long_33.92128, -118.274186', 'Lat Long_33.994524, -118.149953', 'City_Ceres', 'City_San Ramon', 'City_Sutter', 'City_Trinidad', 'Lat Long_34.231053, -118.338307', 'Lat Long_34.042286, -117.756106', 'Lat Long_33.933565, -118.062611', 'Lat Long_36.520537, -120.118055', 'City_Mad River', 'City_Mill Valley', 'City_Irvine', 'Lat Long_34.312945, -118.858169', 'Dependents_Yes', 'Lat Long_33.617108, -117.253349', 'Lat Long_34.278967, -116.773825', 'Lat Long_33.762759, -116.324817', 'City_Richmond', 'Lat Long_34.866032, -120.536546', 'Lat Long_38.542532, -121.378826', 'Lat Long_37.827946, -122.107185', 'Lat Long_38.392559, -121.225093', 'Lat Long_38.121601, -120.133915', 'City_Northridge', 'Lat Long_33.739412, -117.173334', 'Lat Long_38.050558, -121.646924', 'City_Shoshone', 'City_Lucerne Valley', 'City_North Hollywood', 'Lat Long_36.687292, -120.437354', 'Lat Long_37.45567, -122.407992', 'Lat Long_40.726949, -124.217378', 'Lat Long_33.694501, -116.412711', 'Lat Long_38.233879, -120.861666', 'City_Vacaville', 'Lat Long_33.888323, -117.277533', 'Lat Long_34.093781, -118.381061', 'City_Pacific Palisades', 'City_Palmdale', 'City_Biola', 'Lat Long_33.994676, -117.372498', 'Lat Long_37.720498, -122.443119', 'Lat Long_41.831901, -123.487478', 'Lat Long_34.264124, -114.717964', 'Lat Long_33.829583, -116.474131', 'Lat Long_37.83726, -122.287648', 'Lat Long_36.464635, -119.094348', 'City_Cupertino', 'Lat Long_36.391777, -119.372842', 'Lat Long_37.524721, -120.757977', 'Lat Long_41.212695, -122.392067', 'Lat Long_34.245289, -117.642503', 'City_Holtville', 'City_Pilot Hill', 'City_Chowchilla', 'Lat Long_37.171727, -122.142961', 'City_Alturas', 'Lat Long_34.083086, -117.737997', 'City_South Lake Tahoe', 'Lat Long_32.587557, -116.636816', 'Lat Long_37.321233, -120.656354', 'Lat Long_34.9436, -115.287901', 'City_Covina'}



Q- have become so big so we don not leverage the fact of 
Rzemovng the hight & low cardinatiy can we get a better approach here 

**Optimizing Encoding Strategies for High and Low Cardinality Categorical Variables**

You're absolutely right—applying One-Hot Encoding to high cardinality categorical variables can lead to an explosive increase in the number of features, making your dataset unwieldy and potentially degrading model performance. To address this while adhering to the DRY (Don't Repeat Yourself) principle and leveraging your existing classification of low and high cardinality columns, we can adopt a more strategic encoding approach.

### 1. Reclassify Categorical Columns Based on Absolute Cardinality
Instead of using a relative threshold (e.g., 50% of total rows) to determine high cardinality, it’s often more effective to use an absolute threshold based on the number of unique categories. For example, you might decide that any categorical variable with more than 10 unique values is considered high cardinality.

**Update Your Cardinality Classification Functions:**
```python
from typing import List, Tuple

# Update the high cardinality threshold to an absolute number
HIGH_CARDINALITY_THRESHOLD = 10  # You can adjust this based on your data

def find_high_cardinality_columns_absolute(
    cardinality: pd.Series, threshold: int = HIGH_CARDINALITY_THRESHOLD
) -> List[str]:
    return cardinality[cardinality > threshold].index.tolist()

def classify_columns_by_cardinality_absolute(
    df: pd.DataFrame, threshold: int = HIGH_CARDINALITY_THRESHOLD
) -> Tuple[List[str], List[str]]:
    cardinality = calculate_cardinality(df)
    low_cardinality = find_constant_columns(cardinality)
    high_cardinality = find_high_cardinality_columns_absolute(cardinality, threshold)
    return low_cardinality, high_cardinality
```
**Reclassify cardinality with absolute threshold:**
```python
low_cardinality, high_cardinality = classify_columns_by_cardinality_absolute(df)
print("Low Cardinality Columns:", low_cardinality)
print("High Cardinality Columns:", high_cardinality)
```

### 2. Apply Different Encoding Strategies Based on Cardinality
With the revised classification, you can now apply distinct encoding techniques tailored to the cardinality of each categorical variable.

#### a. One-Hot Encoding for Low Cardinality Variables
```python
def one_hot_encode_low_cardinality(df: pd.DataFrame, columns: List[str]) -> pd.DataFrame:
    return pd.get_dummies(df, columns=columns, drop_first=True)

# Apply One-Hot Encoding to low cardinality variables
df_encoded_low = one_hot_encode_low_cardinality(df, low_card_cat)
print(f"Encoded Low Cardinality DataFrame shape: {df_encoded_low.shape}")
```

#### b. Frequency Encoding for High Cardinality Variables
```python
def frequency_encode_high_cardinality(df: pd.DataFrame, columns: List[str]) -> pd.DataFrame:
    for col in columns:
        freq = df[col].value_counts() / len(df)
        df[col + '_freq'] = df[col].map(freq)
        df.drop(columns=[col], inplace=True)
    return df

# Apply Frequency Encoding
df_encoded = frequency_encode_high_cardinality(df, high_cardinality)
print(f"Final Encoded DataFrame shape: {df_encoded.shape}")
```

#### c. Alternative: Target Encoding (With Caution)
Target Encoding can be risky if not done properly (due to data leakage). Use it cautiously with cross-validation.
```python
from sklearn.model_selection import KFold

def target_encode_high_cardinality(df: pd.DataFrame, columns: List[str], target: str, n_splits: int = 5) -> pd.DataFrame:
    kf = KFold(n_splits=n_splits, shuffle=True, random_state=42)
    for col in columns:
        target_encoded = pd.Series(index=df.index, dtype=float)
        for train_idx, val_idx in kf.split(df):
            mean = df.loc[train_idx, target].mean()
            mapping = df.loc[train_idx].groupby(col)[target].mean()
            target_encoded.iloc[val_idx] = df.loc[val_idx, col].map(mapping).fillna(mean)
        df[col + '_target_enc'] = target_encoded
        df.drop(columns=[col], inplace=True)
    return df

# Apply Target Encoding
df_encoded = target_encode_high_cardinality(df, high_cardinality, 'Churn Value')
print(f"Final Encoded DataFrame shape after Target Encoding: {df_encoded.shape}")
```

### 3. Putting It All Together: DRY Principle Implementation
Consolidate the functions and encoding strategies:
```python
# Reclassify columns with absolute cardinality
low_cardinality, high_cardinality = classify_columns_by_cardinality_absolute(df)
df = df.drop(columns=low_cardinality)

# Apply One-Hot Encoding to low cardinality categories
df_encoded_low = one_hot_encode_low_cardinality(df, low_card_cat)

# Apply Frequency Encoding to high cardinality categories
df_encoded = frequency_encode_high_cardinality(df_encoded_low, high_cardinality)

print(f"Final Encoded DataFrame shape: {df_encoded.shape}")
```

### 4. Additional Recommendations
1. **Drop Irrelevant Columns** (like `CustomerID`).
2. **Handle 'Lat Long' Column** by using separate latitude and longitude.
3. **Dimensionality Reduction**: Use PCA to reduce feature dimensionality.
```python
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
numerical_features = df_encoded.select_dtypes(include=[np.number]).columns.tolist()
df_scaled = scaler.fit_transform(df_encoded[numerical_features])

pca = PCA(n_components=0.95)  # Retain 95% variance
principal_components = pca.fit_transform(df_scaled)
df_pca = pd.DataFrame(principal_components, index=df_encoded.index)

print(f"PCA-reduced DataFrame shape: {df_pca.shape}")
```

### 5. Final Thoughts
By differentiating between low and high cardinality categorical variables and applying appropriate encoding strategies, you can reduce the dimensionality of your dataset while preserving essential information. This approach adheres to the DRY principle, enhancing the scalability and efficiency of your data preprocessing pipeline.

Q- oky the result now has reduced to be like this 

“df_encoded.shape
“ 

(7043, 28)


Q- now can help me a

"""
Q- now let's apply Feature Scaling to


Q- the data Frame become like this df_encoded


Q- with sklearn we can
"""
from sklearn.preprocessing import StandardScaler


scaler = StandardScaler()
X = df_encoded.drop('Churn Label', axis=1)
y = df_encoded['Churn Label']
data_scaled = scaler.fit_transform(X)


Q- fix any issue here 

{
	"name": "ValueError",
	"message": "could not convert string to float: 'Male'",
	"stack": "---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\\AppData\\Local\\Temp\\ipykernel_29460\\1773295986.py in ?()
      9 
     10 scaler = StandardScaler()
     11 X = df_encoded.drop('Churn Label', axis=1)
     12 y = df_encoded['Churn Label']
---> 13 data_scaled = scaler.fit_transform(X)

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\utils\\_set_output.py in ?(self, X, *args, **kwargs)
    314     @wraps(f)
    315     def wrapped(self, X, *args, **kwargs):
--> 316         data_to_wrap = f(self, X, *args, **kwargs)
    317         if isinstance(data_to_wrap, tuple):
    318             # only wrap the first output for cross decomposition
    319             return_tuple = (

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\base.py in ?(self, X, y, **fit_params)
   1094                 )
   1095 
   1096         if y is None:
   1097             # fit method of arity 1 (unsupervised transformation)
-> 1098             return self.fit(X, **fit_params).transform(X)
   1099         else:
   1100             # fit method of arity 2 (supervised transformation)
   1101             return self.fit(X, y, **fit_params).transform(X)

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\preprocessing\\_data.py in ?(self, X, y, sample_weight)
    874             Fitted scaler.
    875         \"\"\"
    876         # Reset internal state before fitting
    877         self._reset()
--> 878         return self.partial_fit(X, y, sample_weight)

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\base.py in ?(estimator, *args, **kwargs)
   1469                 skip_parameter_validation=(
   1470                     prefer_skip_nested_validation or global_skip_validation
   1471                 )
   1472             ):
-> 1473                 return fit_method(estimator, *args, **kwargs)

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\preprocessing\\_data.py in ?(self, X, y, sample_weight)
    910         self : object
    911             Fitted scaler.
    912         \"\"\"
    913         first_call = not hasattr(self, \"n_samples_seen_\")
--> 914         X = self._validate_data(
    915             X,
    916             accept_sparse=(\"csr\", \"csc\"),
    917             dtype=FLOAT_DTYPES,

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\base.py in ?(self, X, y, reset, validate_separately, cast_to_ndarray, **check_params)
    629                 out = y
    630             else:
    631                 out = X, y
    632         elif not no_val_X and no_val_y:
--> 633             out = check_array(X, input_name=\"X\", **check_params)
    634         elif no_val_X and not no_val_y:
    635             out = _check_y(y, **check_params)
    636         else:

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\utils\\validation.py in ?(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_writeable, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name)
   1009                         )
   1010                     array = xp.astype(array, dtype, copy=False)
   1011                 else:
   1012                     array = _asarray_with_order(array, order=order, dtype=dtype, xp=xp)
-> 1013             except ComplexWarning as complex_warning:
   1014                 raise ValueError(
   1015                     \"Complex data not supported\
{}\
\".format(array)
   1016                 ) from complex_warning

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\sklearn\\utils\\_array_api.py in ?(array, dtype, order, copy, xp, device)
    741         # Use NumPy API to support order
    742         if copy is True:
    743             array = numpy.array(array, order=order, dtype=dtype)
    744         else:
--> 745             array = numpy.asarray(array, order=order, dtype=dtype)
    746 
    747         # At this point array is a NumPy ndarray. We convert it to an array
    748         # container that is consistent with the input's namespace.

c:\\Users\\PCS\\Desktop\\mlops\\Mlops-IBM-Customer-Churn\\venv\\Lib\\site-packages\\pandas\\core\\generic.py in ?(self, dtype, copy)
   2149     def __array__(
   2150         self, dtype: npt.DTypeLike | None = None, copy: bool_t | None = None
   2151     ) -> np.ndarray:
   2152         values = self._values
-> 2153         arr = np.asarray(values, dtype=dtype)
   2154         if (
   2155             astype_is_view(values.dtype, arr.dtype)
   2156             and using_copy_on_write()

ValueError: could not convert string to float: 'Male'"
}
from sklearn.preprocessing import StandardScaler, LabelEncoder




# 2. Encode 'Churn Label' and split before scaling
le = LabelEncoder()
df_encoded['Churn Label'] = le.fit_transform(df_encoded['Churn Label'])


X = df_encoded.drop('Churn Label', axis=1) # Ensure ONLY numerical features are in X
y = df_encoded['Churn Label']  # Correct target


# 3. Scale numerical features only
numerical_cols = X.select_dtypes(include=np.number).columns # Select numerical features
scaler = StandardScaler()
X_scaled = X.copy()  # Create a copy to avoid modifying the original
X_scaled[numerical_cols] = scaler.fit_transform(X[numerical_cols]) # Scale numericals


Q- the output is like this 
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Gender</th>
      <th>Senior Citizen</th>
      <th>Partner</th>
      <th>Dependents</th>
      <th>Phone Service</th>
      <th>Multiple Lines</th>
      <th>Internet Service</th>
      <th>Online Security</th>
      <th>Online Backup</th>
      <th>Device Protection</th>
      <th>...</th>
      <th>Total Charges_freq</th>
      <th>City_freq</th>
      <th>Zip Code_freq</th>
      <th>Lat Long_freq</th>
      <th>Latitude_freq</th>
      <th>Longitude_freq</th>
      <th>Tenure Months_freq</th>
      <th>Monthly Charges_freq</th>
      <th>Churn Score_freq</th>
      <th>CLTV_freq</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>Male</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>DSL</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.043305</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.033792</td>
      <td>0.000568</td>
      <td>0.007099</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>1</th>
      <td>Female</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>Fiber optic</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.043305</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.033792</td>
      <td>0.001278</td>
      <td>0.020304</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>2</th>
      <td>Female</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Fiber optic</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.043305</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.017464</td>
      <td>0.001278</td>
      <td>0.007099</td>
      <td>0.000284</td>
    </tr>
    <tr>
      <th>3</th>
      <td>Female</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Fiber optic</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.043305</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.008093</td>
      <td>0.000852</td>
      <td>0.006957</td>
      <td>0.000284</td>
    </tr>
    <tr>
      <th>4</th>
      <td>Male</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Fiber optic</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.043305</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.009371</td>
      <td>0.000710</td>
      <td>0.008377</td>
      <td>0.000284</td>
    </tr>
    <tr>
      <th>...</th>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <th>7038</th>
      <td>Female</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>No internet service</td>
      <td>No internet service</td>
      <td>No internet service</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.000710</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.051399</td>
      <td>0.000284</td>
      <td>0.011217</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>7039</th>
      <td>Male</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>DSL</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.000710</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.013347</td>
      <td>0.002414</td>
      <td>0.014766</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>7040</th>
      <td>Female</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>Fiber optic</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.000710</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.051399</td>
      <td>0.000426</td>
      <td>0.021014</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>7041</th>
      <td>Female</td>
      <td>No</td>
      <td>Yes</td>
      <td>Yes</td>
      <td>No</td>
      <td>No phone service</td>
      <td>DSL</td>
      <td>Yes</td>
      <td>No</td>
      <td>No</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.000710</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.014057</td>
      <td>0.000426</td>
      <td>0.014766</td>
      <td>0.000426</td>
    </tr>
    <tr>
      <th>7042</th>
      <td>Male</td>
      <td>No</td>
      <td>No</td>
      <td>No</td>
      <td>Yes</td>
      <td>No</td>
      <td>Fiber optic</td>
      <td>Yes</td>
      <td>No</td>
      <td>Yes</td>
      <td>...</td>
      <td>0.000142</td>
      <td>0.001420</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.00071</td>
      <td>0.012637</td>
      <td>0.000710</td>
      <td>0.013631</td>
      <td>0.000426</td>
    </tr>
  </tbody>
</table>
<p>7043 rows × 28 columns</p>
</div>


Q- did we can now apply a ml model or still some work ?