from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
from typing import Sequence, Tuple
from itertools import combinations, chain
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import sklearn
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans, AgglomerativeClustering, SpectralClustering
from scipy.cluster.hierarchy import dendrogram
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import silhouette_samples, silhouette_score
from sklearn.tree import DecisionTreeClassifier, plot_tree
df_Fel = pd.read_csv('/content/drive/MyDrive/Amazon hackathon/Columbia_Hackathon_Data_Dogfood.csv')
sns.pairplot(df_Fel.drop(columns=['sale_id', 'customer_id', 'product_id']), hue = 'prime', palette=['b', 'r'], plot_kws=dict(alpha=0.4))
plt.show()
Data Preprocessing
df_Fel.drop(columns =['sale_id','customer_id', 'product_id'], inplace=True) #drop sale_id, customer_id, product_id
scaler = StandardScaler()
df_Fel_scale = df_Fel.copy()
df_Fel_scale[['price']] = scaler.fit_transform(df_Fel_scale[['price']])
df_Fel_scale.head()
| sale_date | ad_exp | sns | product_brand | product_name | price | qty | gender | city | st | zip | lat | lng | marital | education | income | age | prime | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2021-10-01 | Don't recall seeing an ad | 0 | Alpha | Alpha Natural Sensitive Systems, Skin & Coat S... | 0.490374 | 1 | F | Boise | ID | 83711 | 43.4599 | -116.2440 | Married | Some college or trade school | $80,000 - $99,999 | 55-64 | 0 |
| 1 | 2021-10-01 | Don't recall seeing an ad | 1 | Arf | Arf Soft & Tender American Jerky Dog Treats | -1.380585 | 1 | F | Durham | NC | 27710 | 36.0512 | -78.8577 | Married | High school graduate | $100,000 or more | 45-54 | 1 |
| 2 | 2021-10-01 | Don't recall seeing an ad | 0 | Bezt | Bezt Adult Chicken and Brown Rice Recipe Dry D... | -1.245769 | 1 | M | Phoenix | AZ | 85099 | 33.2765 | -112.1872 | Married | College graduate | $100,000 or more | 45-54 | 1 |
| 3 | 2021-10-01 | Don't recall seeing an ad | 0 | Alpha | Alpha Probiotics Shredded Blend High Protein, ... | 2.004318 | 1 | F | Portsmouth | NH | 214 | 43.0059 | -71.0132 | Married | Some college or trade school | $100,000 or more | 55-64 | 1 |
| 4 | 2021-10-01 | Don't recall seeing an ad | 0 | Alpha | Alpha Natural Adult Lamb & Rice Dry Dog Food | -0.699510 | 1 | F | Chicago | IL | 60624 | 41.8804 | -87.7223 | Single | Some college or trade school | $40,000 - $59,999 | 25-34 | 1 |
df_Fel_onehot = pd.get_dummies(df_Fel_scale, drop_first=False)#, columns = (['sale_date','ad_exp','income','gender','marital', 'education','age']))
df_Fel_onehot.head()
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0.490374 | 1 | 83711 | 43.4599 | -116.2440 | 0 | 1 | 0 | 0 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | -1.380585 | 1 | 27710 | 36.0512 | -78.8577 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 2 | 0 | -1.245769 | 1 | 85099 | 33.2765 | -112.1872 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 3 | 0 | 2.004318 | 1 | 214 | 43.0059 | -71.0132 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 4 | 0 | -0.699510 | 1 | 60624 | 41.8804 | -87.7223 | 1 | 1 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
5 rows × 1044 columns
def calculate_k_mean(n_cluster: int, X: Sequence)-> Tuple[float, Sequence, Sequence, sklearn.cluster._kmeans.KMeans]:
'''
General Function to returns commonly used metrics for K-Means Clustering and the fitted instance
'''
kmean = KMeans(n_clusters = n_cluster, random_state=24)
cluster_labels = kmean.fit_predict(X)
return kmean.inertia_, cluster_labels, kmean.cluster_centers_, kmean
log = []
silhoettes = True
k_range = range(2,15) # Range of k values
for k in k_range:
inertia, cluster_labels, _, _ = calculate_k_mean(k, df_Fel_onehot) # Fitting the model
if silhoettes: # Generate Silhoettes Score
silhoettes_avg = silhouette_score(df_Fel_onehot, cluster_labels)
log.append([k, inertia, silhoettes_avg])
continue
log.append([k, inertia])
plot_df = pd.DataFrame(
log, columns = [
'k', 'Inertias (Sum of squared distances to Nearest Cluster Centroids)', 'Silhouette Coefficient'
]
)
fig, axes = plt.subplots(1,2, figsize=(18,7))
sns.lineplot(
x='k', y='Inertias (Sum of squared distances to Nearest Cluster Centroids)',
data = plot_df, marker= 'o', ax = axes[0])
axes[0].set_title("Elbow Method (Inertia)")
sns.lineplot(x='k', y='Silhouette Coefficient', data=plot_df, marker='o', ax = axes[1])
axes[1].set_title("Silhoettes Score")
plt.show()
def silhouette_analysis_with_pca(n_clusters : int, X: Sequence):
'''
Perform Silhoette Analysis and Visualising the clusters generated using PCA
Reference: https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html
'''
# Perform K-Mean Clustering
_, cluster_labels, cluster_centroids, kmean = calculate_k_mean(n_clusters, X)
# Compute Individual Silhoette Score
silhoettes_avg = silhouette_score(X, cluster_labels)
# Compute Average Silhoette Score
sample_silhouette_values = silhouette_samples(X, cluster_labels)
# Create a subplot with 1 row and 2 columns
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.set_size_inches(18, 7)
################################### Silhouette Plot #############################################
# The (n_clusters+1)*10 is for inserting blank space between silhouette
# plots of individual clusters, to demarcate them clearly.
ax1.set_xlim([-0.1, 1])
ax1.set_ylim([0, len(df_Fel_onehot) + (n_clusters + 1) * 10])
y_lower = 10
# Assign colours for different cluster
for i in range(n_clusters):
# Aggregate the silhouette scores for samples belonging to
# cluster i, and sort them
ith_cluster_silhouette_values = sample_silhouette_values[cluster_labels == i]
ith_cluster_silhouette_values.sort()
size_cluster_i = ith_cluster_silhouette_values.shape[0]
y_upper = y_lower + size_cluster_i
color = cm.nipy_spectral(float(i) / n_clusters)
ax1.fill_betweenx(np.arange(y_lower, y_upper),
0, ith_cluster_silhouette_values,
facecolor=color, edgecolor=color, alpha=0.7)
# Label the silhouette plots with their cluster numbers at the middle
ax1.text(-0.05, y_lower + 0.5 * size_cluster_i, str(i))
# Compute the new y_lower for next plot
y_lower = y_upper + 10 # 10 for the 0 samples
ax1.set_title("The Silhouette Plot for the various clusters.")
ax1.set_xlabel("The silhouette coefficient values")
ax1.set_ylabel("Cluster label")
# The vertical line for average silhouette score of all the values
ax1.axvline(x=silhoettes_avg, color="red", linestyle="--")
ax1.set_yticks([]) # Clear the yaxis labels / ticks
ax1.set_xticks([-0.1, 0, 0.2, 0.4, 0.6, 0.8, 1])
################################### PCA Plot #############################################
# Compute PCA with only First 2 Number of Component
pca2 = PCA(n_components=2)
sample_pca2 = pca2.fit_transform(X)
# Plotting the PCA graph
colors = cm.nipy_spectral(cluster_labels.astype(float) / n_clusters)
ax2.scatter(sample_pca2[:,0], sample_pca2[:,1], marker='.', s=75, lw=0, alpha=1,
c=colors, edgecolor='k')
# Labeling the clusters
centers = cluster_centroids.dot(pca2.components_.T) # Calculate New Cluster Positions after PCA
# Labelling each cluster centroids
#ax2.scatter(centers[:, 0], centers[:, 1], marker='o',
# c="white", alpha=1, s=200, edgecolor='k')
#for i, c in enumerate(centers):
# ax2.scatter(c[0], c[1], marker='$%d$' % i, alpha=1,
# s=50, edgecolor='k')
# ax2.set_title("The visualization of the PCA with total variance explained of {:.2f}%.".format(pca2.explained_variance_ratio_.sum()*100))
#ax2.set_xlabel("Feature space for the 1st principle component")
#ax2.set_ylabel("Feature space for the 2nd principle component")
plt.suptitle(("Silhouette analysis for KMeans clustering on sample data "
"with n_clusters = %d" % n_clusters),
fontsize=14, fontweight='bold')
for i, k in enumerate(range(10,11)): # Analyse k = (4,5,6)
silhouette_analysis_with_pca(n_clusters = k, X = df_Fel_onehot)
plt.show()
inertia, cluster_labels, _, _ = calculate_k_mean(10, df_Fel_onehot)
inertia
59928172015.67202
labels = cluster_labels
len(labels)
8894
label0 = np.where(labels == 0)
label0
label0[0].shape
(1108,)
label1 = np.where(labels == 1)
label1
label1[0].shape
(642,)
label2 = np.where(labels == 2)
label2[0].shape
(1264,)
label3 = np.where(labels == 3)
label3[0].shape
(510,)
label4 = np.where(labels == 4)
label4[0].shape
(755,)
label5 = np.where(labels == 5)
label5[0].shape
(668,)
label6 = np.where(labels == 6)
label6[0].shape
(1066,)
label7 = np.where(labels == 7)
label7[0].shape
(877,)
label8 = np.where(labels == 8)
label8[0].shape
(1221,)
label9 = np.where(labels == 9)
label9[0].shape
(783,)
label0= label0[0] #convert from tuple to list
label1= label1[0]
label2= label2[0]
label3= label3[0]
label4= label4[0]
label5= label5[0]
label6= label6[0]
label7= label7[0]
label8= label8[0]
label9= label9[0]
df0= df_Fel_onehot[df_Fel_onehot.index.isin(label0)] #get rows from cluster based on index
df1= df_Fel_onehot[df_Fel_onehot.index.isin(label1)]
df2= df_Fel_onehot[df_Fel_onehot.index.isin(label2)]
df3= df_Fel_onehot[df_Fel_onehot.index.isin(label3)]
df4= df_Fel_onehot[df_Fel_onehot.index.isin(label4)]
df5= df_Fel_onehot[df_Fel_onehot.index.isin(label5)]
df6= df_Fel_onehot[df_Fel_onehot.index.isin(label6)]
df7= df_Fel_onehot[df_Fel_onehot.index.isin(label7)]
df8= df_Fel_onehot[df_Fel_onehot.index.isin(label8)]
df9= df_Fel_onehot[df_Fel_onehot.index.isin(label9)]
from statistics import mean
mean(df0['price']*df0['qty'])
-0.024019945030047857
mean(df1['price']*df1['qty'])
-0.018127835978210223
mean(df2['price']*df2['qty'])
0.10326014624762712
mean(df3['price']*df3['qty'])
0.09995315931784801
mean(df4['price']*df4['qty'])
-0.04742933551255805
mean(df5['price']*df5['qty'])
-0.021991431675108617
mean(df6['price']*df6['qty'])
0.06981661182760394
mean(df7['price']*df7['qty'])
-0.05458320917941718
mean(df8['price']*df8['qty'])
-0.03677272386123989
mean(df9['price']*df9['qty'])
-0.05638635074643973
columns_brand = ['product_brand_Alpha',
'product_brand_Arf',
'product_brand_Astro',
'product_brand_Beam',
'product_brand_Beethoven',
'product_brand_Bezt',
'product_brand_Bones',
'product_brand_Choice',
'product_brand_Flora',
'product_brand_Garland',
'product_brand_Hanover',
'product_brand_Health One',
'product_brand_Hearth',
'product_brand_K99',
'product_brand_Kastle',
'product_brand_King',
'product_brand_Omaha',
'product_brand_Paws',
'product_brand_Perro',
'product_brand_Playtime',
'product_brand_Rivera',
'product_brand_Romero',
'product_brand_Ruby',
'product_brand_Seattle Gourmet',
'product_brand_Top']
max_column = ''
max_count = -1
for column in columns_brand:
count = df2[column].sum()
print('max_column = {}, count = {}'.format(column, count))
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = product_brand_Alpha, count = 416 max_column = product_brand_Arf, count = 133 max_column = product_brand_Astro, count = 10 max_column = product_brand_Beam, count = 31 max_column = product_brand_Beethoven, count = 14 max_column = product_brand_Bezt, count = 209 max_column = product_brand_Bones, count = 9 max_column = product_brand_Choice, count = 53 max_column = product_brand_Flora, count = 7 max_column = product_brand_Garland, count = 45 max_column = product_brand_Hanover, count = 12 max_column = product_brand_Health One, count = 109 max_column = product_brand_Hearth, count = 8 max_column = product_brand_K99, count = 11 max_column = product_brand_Kastle, count = 5 max_column = product_brand_King, count = 30 max_column = product_brand_Omaha, count = 10 max_column = product_brand_Paws, count = 26 max_column = product_brand_Perro, count = 12 max_column = product_brand_Playtime, count = 6 max_column = product_brand_Rivera, count = 14 max_column = product_brand_Romero, count = 8 max_column = product_brand_Ruby, count = 18 max_column = product_brand_Seattle Gourmet, count = 43 max_column = product_brand_Top, count = 25 max_column = product_brand_Alpha, count = 416
Aggrolomative Clustering
from scipy.cluster.hierarchy import dendrogram, linkage
data = df_Fel_onehot
linkage_data = linkage(data, method = 'ward', metric='euclidean')
dendrogram(linkage_data)
plt.show()
hierarchical_cluster = AgglomerativeClustering(n_clusters = 10, affinity='euclidean', linkage='ward' )
labels = hierarchical_cluster.fit_predict(df_Fel_onehot)
print(labels)
[7 2 7 ... 4 0 0]
len(labels)
8894
label0 = np.where(labels == 0)
label0
label0[0].shape
(963,)
label1 = np.where(labels == 1)
label1
label1[0].shape
(685,)
label2 = np.where(labels == 2)
label2[0].shape
(1470,)
label3 = np.where(labels == 3)
label3[0].shape
(1108,)
label4 = np.where(labels == 4)
label4[0].shape
(1340,)
label5 = np.where(labels == 5)
label5[0].shape
(862,)
label6 = np.where(labels == 6)
label6[0].shape
(810,)
label7 = np.where(labels == 7)
label7[0].shape
(783,)
label8 = np.where(labels == 8)
label8[0].shape
(389,)
label9 = np.where(labels == 9)
label9[0].shape
(484,)
label0= label0[0] #convert from tuple to list
label1= label1[0]
label2= label2[0]
label3= label3[0]
label4= label4[0]
label5= label5[0]
label6= label6[0]
label7= label7[0]
label8= label8[0]
label9= label9[0]
df0= df_Fel_onehot[df_Fel_onehot.index.isin(label0)] #get rows from cluster based on index
df1= df_Fel_onehot[df_Fel_onehot.index.isin(label1)]
df2= df_Fel_onehot[df_Fel_onehot.index.isin(label2)]
df3= df_Fel_onehot[df_Fel_onehot.index.isin(label3)]
df4= df_Fel_onehot[df_Fel_onehot.index.isin(label4)]
df5= df_Fel_onehot[df_Fel_onehot.index.isin(label5)]
df6= df_Fel_onehot[df_Fel_onehot.index.isin(label6)]
df7= df_Fel_onehot[df_Fel_onehot.index.isin(label7)]
df8= df_Fel_onehot[df_Fel_onehot.index.isin(label8)]
df9= df_Fel_onehot[df_Fel_onehot.index.isin(label9)]
df1
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 0 | -0.699510 | 1 | 60624 | 41.8804 | -87.7223 | 1 | 1 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 33 | 0 | 0.842396 | 1 | 62723 | 39.7495 | -89.6060 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 48 | 0 | 0.260186 | 1 | 55127 | 45.0803 | -93.0875 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 50 | 1 | -0.629605 | 1 | 57110 | 43.5486 | -96.6332 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 54 | 0 | 0.149337 | 1 | 62711 | 39.7655 | -89.7293 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 8870 | 0 | 0.140349 | 2 | 62756 | 39.7495 | -89.6060 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 8874 | 0 | 0.842396 | 1 | 60636 | 41.7760 | -87.6674 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 8882 | 1 | 0.638672 | 1 | 55905 | 44.0225 | -92.4668 | 0 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 8884 | 0 | -0.808363 | 1 | 52804 | 41.5386 | -90.6115 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8886 | 0 | -1.150398 | 1 | 55108 | 44.9806 | -93.1771 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
685 rows × 1044 columns
from statistics import mean
mean(df0['price']*df0['qty'])
-0.015045486214909818
mean(df1['price']*df1['qty'])
-0.024412121773835907
mean(df2['price']*df2['qty'])
0.08744795926327455
mean(df3['price']*df3['qty'])
-0.024019945030047857
mean(df4['price']*df4['qty'])
-0.0200793420043912
mean(df5['price']*df5['qty'])
-0.052724937111071644
mean(df6['price']*df6['qty'])
0.06573791243837343
mean(df7['price']*df7['qty'])
-0.05638635074643973
mean(df8['price']*df8['qty'])
0.0837901853442486
mean(df9['price']*df9['qty'])
-0.020267132049387838
cluster 8 has the highest value customers. therefore, we would want to learn
what the features' characteristic of this cluster is
df8
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 19 | 0 | -1.350127 | 1 | 70116 | 29.9686 | -90.0646 | 1 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 29 | 0 | -0.770414 | 1 | 68517 | 40.9317 | -96.6045 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 30 | 0 | -1.007592 | 1 | 66160 | 39.0966 | -94.7495 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 41 | 0 | 3.381947 | 1 | 70179 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 71 | 0 | 0.260186 | 1 | 70165 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 8798 | 0 | -0.559700 | 1 | 66225 | 38.8999 | -94.8320 | 0 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 8799 | 0 | -0.691022 | 2 | 71151 | 32.6076 | -93.7526 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8860 | 0 | 0.939763 | 1 | 68197 | 41.2490 | -96.0274 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8864 | 0 | -1.008091 | 1 | 68164 | 41.2955 | -96.1008 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 8879 | 0 | 0.097407 | 1 | 66105 | 39.0850 | -94.6356 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
389 rows × 1044 columns
column_list = df_Fel_onehot.columns.values.tolist()
column_list
['sns', 'price', 'qty', 'zip', 'lat', 'lng', 'prime', 'sale_date_2021-10-01', 'sale_date_2021-10-02', 'sale_date_2021-10-03', 'sale_date_2021-10-04', 'sale_date_2021-10-05', 'sale_date_2021-10-06', 'sale_date_2021-10-07', 'sale_date_2021-10-08', 'sale_date_2021-10-09', 'sale_date_2021-10-10', 'sale_date_2021-10-11', 'sale_date_2021-10-12', 'sale_date_2021-10-13', 'sale_date_2021-10-14', 'sale_date_2021-10-15', 'sale_date_2021-10-16', 'sale_date_2021-10-17', 'sale_date_2021-10-18', 'sale_date_2021-10-19', 'sale_date_2021-10-20', 'sale_date_2021-10-21', 'sale_date_2021-10-22', 'sale_date_2021-10-23', 'sale_date_2021-10-24', 'sale_date_2021-10-25', 'sale_date_2021-10-26', 'sale_date_2021-10-27', 'sale_date_2021-10-28', 'sale_date_2021-10-29', 'sale_date_2021-10-30', 'sale_date_2021-10-31', 'sale_date_2021-11-01', 'sale_date_2021-11-02', 'sale_date_2021-11-03', 'sale_date_2021-11-04', 'sale_date_2021-11-05', 'sale_date_2021-11-06', 'sale_date_2021-11-07', 'sale_date_2021-11-08', 'sale_date_2021-11-09', 'sale_date_2021-11-10', 'sale_date_2021-11-11', 'sale_date_2021-11-12', 'sale_date_2021-11-13', 'sale_date_2021-11-14', 'sale_date_2021-11-15', 'sale_date_2021-11-16', 'sale_date_2021-11-17', 'sale_date_2021-11-18', 'sale_date_2021-11-19', 'sale_date_2021-11-20', 'sale_date_2021-11-21', 'sale_date_2021-11-22', 'sale_date_2021-11-23', 'sale_date_2021-11-24', 'sale_date_2021-11-25', 'sale_date_2021-11-26', 'sale_date_2021-11-27', 'sale_date_2021-11-28', 'sale_date_2021-11-29', 'sale_date_2021-11-30', 'sale_date_2021-12-01', 'sale_date_2021-12-02', 'sale_date_2021-12-03', 'sale_date_2021-12-04', 'sale_date_2021-12-05', 'sale_date_2021-12-06', 'sale_date_2021-12-07', 'sale_date_2021-12-08', 'sale_date_2021-12-09', 'sale_date_2021-12-10', 'sale_date_2021-12-11', 'sale_date_2021-12-12', 'sale_date_2021-12-13', 'sale_date_2021-12-14', 'sale_date_2021-12-15', 'sale_date_2021-12-16', 'sale_date_2021-12-17', 'sale_date_2021-12-18', 'sale_date_2021-12-19', 'sale_date_2021-12-20', 'sale_date_2021-12-21', 'sale_date_2021-12-22', 'sale_date_2021-12-23', 'sale_date_2021-12-24', 'sale_date_2021-12-25', 'sale_date_2021-12-26', 'sale_date_2021-12-27', 'sale_date_2021-12-28', 'sale_date_2021-12-29', 'sale_date_2021-12-30', 'sale_date_2021-12-31', 'sale_date_2022-01-01', 'sale_date_2022-01-02', 'sale_date_2022-01-03', 'sale_date_2022-01-04', 'sale_date_2022-01-05', 'sale_date_2022-01-06', 'sale_date_2022-01-07', 'sale_date_2022-01-08', 'sale_date_2022-01-09', 'sale_date_2022-01-10', 'sale_date_2022-01-11', 'sale_date_2022-01-12', 'sale_date_2022-01-13', 'sale_date_2022-01-14', 'sale_date_2022-01-15', 'sale_date_2022-01-16', 'sale_date_2022-01-17', 'sale_date_2022-01-18', 'sale_date_2022-01-19', 'sale_date_2022-01-20', 'sale_date_2022-01-21', 'sale_date_2022-01-22', 'sale_date_2022-01-23', 'sale_date_2022-01-24', 'sale_date_2022-01-25', 'sale_date_2022-01-26', 'sale_date_2022-01-27', 'sale_date_2022-01-28', 'sale_date_2022-01-29', 'sale_date_2022-01-30', 'sale_date_2022-01-31', 'sale_date_2022-02-01', 'sale_date_2022-02-02', 'sale_date_2022-02-03', 'sale_date_2022-02-04', 'sale_date_2022-02-05', 'sale_date_2022-02-06', 'sale_date_2022-02-07', 'sale_date_2022-02-08', 'sale_date_2022-02-09', 'sale_date_2022-02-10', 'sale_date_2022-02-11', 'sale_date_2022-02-12', 'sale_date_2022-02-13', 'sale_date_2022-02-14', 'sale_date_2022-02-15', 'sale_date_2022-02-16', 'sale_date_2022-02-17', 'sale_date_2022-02-18', 'sale_date_2022-02-19', 'sale_date_2022-02-20', 'sale_date_2022-02-21', 'sale_date_2022-02-22', 'sale_date_2022-02-23', 'sale_date_2022-02-24', 'sale_date_2022-02-25', 'sale_date_2022-02-26', 'sale_date_2022-02-27', 'sale_date_2022-02-28', 'sale_date_2022-03-01', 'sale_date_2022-03-02', 'sale_date_2022-03-03', 'sale_date_2022-03-04', 'sale_date_2022-03-05', 'sale_date_2022-03-06', 'sale_date_2022-03-07', 'sale_date_2022-03-08', 'sale_date_2022-03-09', 'sale_date_2022-03-10', 'sale_date_2022-03-11', 'sale_date_2022-03-12', 'sale_date_2022-03-13', 'sale_date_2022-03-14', 'sale_date_2022-03-15', 'sale_date_2022-03-16', 'sale_date_2022-03-17', 'sale_date_2022-03-18', 'sale_date_2022-03-19', 'sale_date_2022-03-20', 'sale_date_2022-03-21', 'sale_date_2022-03-22', 'sale_date_2022-03-23', 'sale_date_2022-03-24', 'sale_date_2022-03-25', 'sale_date_2022-03-26', 'sale_date_2022-03-27', 'sale_date_2022-03-28', 'sale_date_2022-03-29', 'sale_date_2022-03-30', 'sale_date_2022-03-31', 'sale_date_2022-04-01', 'sale_date_2022-04-02', 'sale_date_2022-04-03', 'sale_date_2022-04-04', 'sale_date_2022-04-05', 'sale_date_2022-04-06', 'sale_date_2022-04-07', 'sale_date_2022-04-08', 'sale_date_2022-04-09', 'sale_date_2022-04-10', 'sale_date_2022-04-11', 'sale_date_2022-04-12', 'sale_date_2022-04-13', 'sale_date_2022-04-14', 'sale_date_2022-04-15', 'sale_date_2022-04-16', 'sale_date_2022-04-17', 'sale_date_2022-04-18', 'sale_date_2022-04-19', 'sale_date_2022-04-20', 'sale_date_2022-04-21', 'sale_date_2022-04-22', 'sale_date_2022-04-23', 'sale_date_2022-04-24', 'sale_date_2022-04-25', 'sale_date_2022-04-26', 'sale_date_2022-04-27', 'sale_date_2022-04-28', 'sale_date_2022-04-29', 'sale_date_2022-04-30', 'sale_date_2022-05-01', 'sale_date_2022-05-02', 'sale_date_2022-05-03', 'sale_date_2022-05-04', 'sale_date_2022-05-05', 'sale_date_2022-05-06', 'sale_date_2022-05-07', 'sale_date_2022-05-08', 'sale_date_2022-05-09', 'sale_date_2022-05-10', 'sale_date_2022-05-11', 'sale_date_2022-05-12', 'sale_date_2022-05-13', 'sale_date_2022-05-14', 'sale_date_2022-05-15', 'sale_date_2022-05-16', 'sale_date_2022-05-17', 'sale_date_2022-05-18', 'sale_date_2022-05-19', 'sale_date_2022-05-20', 'sale_date_2022-05-21', 'sale_date_2022-05-22', 'sale_date_2022-05-23', 'sale_date_2022-05-24', 'sale_date_2022-05-25', 'sale_date_2022-05-26', 'sale_date_2022-05-27', 'sale_date_2022-05-28', 'sale_date_2022-05-29', 'sale_date_2022-05-30', 'sale_date_2022-05-31', 'sale_date_2022-06-01', 'sale_date_2022-06-02', 'sale_date_2022-06-03', 'sale_date_2022-06-04', 'sale_date_2022-06-05', 'sale_date_2022-06-06', 'sale_date_2022-06-07', 'sale_date_2022-06-08', 'sale_date_2022-06-09', 'sale_date_2022-06-10', 'sale_date_2022-06-11', 'sale_date_2022-06-12', 'sale_date_2022-06-13', 'sale_date_2022-06-14', 'sale_date_2022-06-15', 'sale_date_2022-06-16', 'sale_date_2022-06-17', 'sale_date_2022-06-18', 'sale_date_2022-06-19', 'sale_date_2022-06-20', 'sale_date_2022-06-21', 'sale_date_2022-06-22', 'sale_date_2022-06-23', 'sale_date_2022-06-24', 'sale_date_2022-06-25', 'sale_date_2022-06-26', 'sale_date_2022-06-27', 'sale_date_2022-06-28', 'sale_date_2022-06-29', 'sale_date_2022-06-30', 'sale_date_2022-07-01', 'sale_date_2022-07-02', 'sale_date_2022-07-03', 'sale_date_2022-07-04', 'sale_date_2022-07-05', 'sale_date_2022-07-06', 'sale_date_2022-07-07', 'sale_date_2022-07-08', 'sale_date_2022-07-09', 'sale_date_2022-07-10', 'sale_date_2022-07-11', 'sale_date_2022-07-12', 'sale_date_2022-07-13', 'sale_date_2022-07-14', 'sale_date_2022-07-15', 'sale_date_2022-07-16', 'sale_date_2022-07-17', 'sale_date_2022-07-18', 'sale_date_2022-07-19', 'sale_date_2022-07-20', 'sale_date_2022-07-21', 'sale_date_2022-07-22', 'sale_date_2022-07-23', 'sale_date_2022-07-24', 'sale_date_2022-07-25', 'sale_date_2022-07-26', 'sale_date_2022-07-27', 'sale_date_2022-07-28', 'sale_date_2022-07-29', 'sale_date_2022-07-30', 'sale_date_2022-07-31', 'sale_date_2022-08-01', 'sale_date_2022-08-02', 'sale_date_2022-08-03', 'sale_date_2022-08-04', 'sale_date_2022-08-05', 'sale_date_2022-08-06', 'sale_date_2022-08-07', 'sale_date_2022-08-08', 'sale_date_2022-08-09', 'sale_date_2022-08-10', 'sale_date_2022-08-11', 'sale_date_2022-08-12', 'sale_date_2022-08-13', 'sale_date_2022-08-14', 'sale_date_2022-08-15', 'sale_date_2022-08-16', 'sale_date_2022-08-17', 'sale_date_2022-08-18', 'sale_date_2022-08-19', 'sale_date_2022-08-20', 'sale_date_2022-08-21', 'sale_date_2022-08-22', 'sale_date_2022-08-23', 'sale_date_2022-08-24', 'sale_date_2022-08-25', 'sale_date_2022-08-26', 'sale_date_2022-08-27', 'sale_date_2022-08-28', 'sale_date_2022-08-29', 'sale_date_2022-08-30', 'sale_date_2022-08-31', 'sale_date_2022-09-01', 'sale_date_2022-09-02', 'sale_date_2022-09-03', 'sale_date_2022-09-04', 'sale_date_2022-09-05', 'sale_date_2022-09-06', 'sale_date_2022-09-07', 'sale_date_2022-09-08', 'sale_date_2022-09-09', 'sale_date_2022-09-10', 'sale_date_2022-09-11', 'sale_date_2022-09-12', 'sale_date_2022-09-13', 'sale_date_2022-09-14', 'sale_date_2022-09-15', 'sale_date_2022-09-16', 'sale_date_2022-09-17', 'sale_date_2022-09-18', 'sale_date_2022-09-19', 'sale_date_2022-09-20', 'sale_date_2022-09-21', 'sale_date_2022-09-22', 'sale_date_2022-09-23', 'sale_date_2022-09-24', 'sale_date_2022-09-25', 'sale_date_2022-09-26', 'sale_date_2022-09-27', 'sale_date_2022-09-28', 'sale_date_2022-09-29', 'sale_date_2022-09-30', 'ad_exp_Display/banner ad', "ad_exp_Don't recall seeing an ad", 'ad_exp_Some other type of ad', 'ad_exp_Sponsored Brands', 'ad_exp_Sponsored Products', 'ad_exp_Video ad', 'product_brand_Alpha', 'product_brand_Arf', 'product_brand_Astro', 'product_brand_Beam', 'product_brand_Beethoven', 'product_brand_Bezt', 'product_brand_Bones', 'product_brand_Choice', 'product_brand_Flora', 'product_brand_Garland', 'product_brand_Hanover', 'product_brand_Health One', 'product_brand_Hearth', 'product_brand_K99', 'product_brand_Kastle', 'product_brand_King', 'product_brand_Omaha', 'product_brand_Paws', 'product_brand_Perro', 'product_brand_Playtime', 'product_brand_Rivera', 'product_brand_Romero', 'product_brand_Ruby', 'product_brand_Seattle Gourmet', 'product_brand_Top', 'product_name_Alpha ', 'product_name_Alpha High Protein Dog Food with Probiotics for Dogs, Shredded Blend Turkey & Rice Formula - 17 lb. Bag', 'product_name_Alpha Moist & Meaty Steak Flavor Adult Dry Dog Food', 'product_name_Alpha Natural Adult Beef & Rice Dry Dog Food', 'product_name_Alpha Natural Adult Chicken & Rice Dry Dog Food', 'product_name_Alpha Natural Adult Lamb & Rice Dry Dog Food', 'product_name_Alpha Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 15 lb. Bag', 'product_name_Alpha Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 7.4 lb. Bag', 'product_name_Alpha Natural Healthy Weight Formula Adult Dry Dog Food & Wet Dog Food', 'product_name_Alpha Natural Large Breed Formula Adult Dry Dog Food', 'product_name_Alpha Natural Sensitive Systems, Skin & Coat Salmon Adult Dry Dog Food', 'product_name_Alpha Performance - High Protein Dry Dog Food - Chicken & Rice', 'product_name_Alpha Probiotics Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice', 'product_name_Alpha Sensitive Skin & Stomach with Oats Adult Dry Dog Food', 'product_name_Alpha Sensitive Skin & Stomach, High Protein Dry Dog Food', 'product_name_Alpha Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice (Packagin', 'product_name_Alpha Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice (Packaging May Vary)', 'product_name_Alpha ive Skin & Stomach, High Protein Dry Dog Food', 'product_name_Alpha n, Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 7.4 lb. Bag', 'product_name_Alpha robiotics Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice', 'product_name_Arf Dog Food, 35% Protein, No Added Grains (Beef, Salmon, Turkey, Lamb, Chicken)', 'product_name_Arf Dry Dog Food Large Breed with Grains (Chicken and Brown Rice)', 'product_name_Arf Jerky Dog Treats, 2 Lb Bag (Chicken, Duck, Sweet Potato Wraps)', 'product_name_Arf Soft & Tender American Jerky Dog Treats', 'product_name_Arf Wet Canned Dog Food 12.5/13.2 oz', 'product_name_Arf Wholesome Grains Adult Healthy Weight Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Arf Wholesome Grains Dry Dog Food (Chicken/Salmon/Beef/Lamb and Brown Rice)', 'product_name_Arf Wholesome Grains Senior Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Arf lesome Grains Senior Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Astro Grain-Free High-Protein Dry Dog Food, Natural Ingredients, Made in USA with Real Meat, All Breeds,', 'product_name_Astro Small Breed Dry Dog Food with Grains, Natural Ingredients, Made in USA with Real Turkey, for Dogs U', 'product_name_Astro ee High-Protein Dry Dog Food, Natural Ingredients, Made in USA with Real Meat, All Breeds, for Adul', 'product_name_Astro th Small Breed Dry Dog Food with Grains, Natural Ingredients, Made in USA with Real Turkey, for Dog', 'product_name_Beam Dish Super Premium Dry Dog Food with Real Meat, Veggies & Fruit', 'product_name_Beam Dry Dog Food, Beef, Pea & Brown Rice Recipe', 'product_name_Beam Just 6 Limited Ingredient Diet Dry Dog Food', 'product_name_Beam Premium Natural Dry Dog Food, Real Chicken & Veggies Recipe, 28 Pounds', 'product_name_Beam emium Natural Dry Dog Food, Real Chicken & Veggies Recipe, 28 Pounds (Packaging May Vary)', 'product_name_Beam sh Super Premium Dry Dog Food with Real Meat, Veggies & Fruit', 'product_name_Beam st 6 Limited Ingredient Diet Dry Dog Food', 'product_name_Beam y Dog Food, Beef, Pea & Brown Rice Recipe', 'product_name_Beethoven Roasted Bison and Venison High Protein Real Meat Recipes Premium Dry Dog Food with Superfoods and N', 'product_name_Beethoven Wild Smoke-Flavored Salmon High Protein Recipes Premium Dry Dog Food with Real Salmon, Superfoods', 'product_name_Beethoven e-Flavored Salmon High Protein Recipes Premium Dry Dog Food with Real Salmon, Superfoods and Nutrie', 'product_name_Bezt Adult Chicken and Brown Rice Recipe Dry Dog Food', 'product_name_Bezt High Protein, Natural Adult Dry Dog Food', 'product_name_Bezt Natural Adult Beef and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Adult Dry Dog Food', 'product_name_Bezt Natural Adult Fish and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Adult Healthy Weight Chicken and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Adult Large Breed Dry Dog Food', 'product_name_Bezt Natural Adult Small Breed Dry Dog Food', 'product_name_Bezt Natural Adult Wet Dog Food, 12.5-oz cans (Pack of 12)', 'product_name_Bezt Natural Senior Dry Dog Food, Chicken and Brown Rice', 'product_name_Bezt Natural Senior Wet Dog Food, Chicken 12.5-oz can (Pack of 12)', 'product_name_Bezt Natural Small Breed Wet Dog Food Cups, in Hearty Gravy, 3.5-oz Cups', 'product_name_Bezt ection Formula Natural Adult Beef and Brown Rice Dry Dog Food', 'product_name_Bezt ection Formula Natural Adult Large Breed Dry Dog Food', 'product_name_Bones Human Grade Dehydrated Whole Grain Dog Food – Complete Meal or Dog Food Topper', 'product_name_Choice Chopped Ground Dinner Adult Wet Dog Food, 3.5 oz. Pouches', 'product_name_Choice Cuts in Gravy Adult Wet Dog Food, 3.5 oz. Pouches', 'product_name_Choice Dry Dog Food', 'product_name_Choice Small Breed Adult Dry Dog Food, Chicken & Steak', 'product_name_Choice Small Dog Complete Nutrition Small Breed Adult Dry Dog Food Grilled Steak and Vegetable Flavor Dog', 'product_name_Choice dult Dry Dog Food, Chicken & Steak', 'product_name_Flora Kibble Dry Dog Food, 20 lb, with Plant Based Protein', 'product_name_Garland Classic Healthy Grains Dry Dog Food with Real Meat', 'product_name_Garland Dog Food Health Weight Recipe', 'product_name_Garland Food with Real Meat', 'product_name_Garland Grain Free with Real Meat + Sweet Potato Dry Dog Food', 'product_name_Garland Healthy Grains Dry Dog Food with Real Meat', 'product_name_Garland Real Meat Dry Dog Food Health Weight Recipe', 'product_name_Garland Senior Dry Dog Food with Real Meat', 'product_name_Garland Small Breed Dry Dog Food with Real Meat', 'product_name_Garland h Real Meat + Sweet Potato Dry Dog Food', 'product_name_Garland ll Breed Dry Dog Food with Real Meat', 'product_name_Garland y Grains Dry Dog Food with Real Meat', 'product_name_Hanover Original Recipe, 13lb, High-Protein Grain-Free Dry Dog Food', 'product_name_Health One Adult Dry Dog Food, Chicken Lamb & Salmon Flavor', 'product_name_Health One Dog Food, Chicken Lamb & Salmon Flavor', 'product_name_Health One High Protein Natural Dry Dog Food with a Trio of Proteins from Chicken, Lamb and Salmon, 4 lb. Bag', 'product_name_Health One NATURAL CHOICE Natural Adult & Senior Dry Dog Food for Small & Toy Breeds', 'product_name_Health One NATURAL CHOICE Natural Adult Dry Dog Food, Chicken', 'product_name_Health One Natural Choice Small Bites Adult Dry Dog Food, Lamb & Chicken', 'product_name_Health One Small & Toy Breed Adult Dry Dog Food', 'product_name_Health One Ultra High Protein Natural Dry Dog Puppy Food with a Trio of Proteins from Chicken Lamb and Salmon', 'product_name_Health One in Natural Dry Dog Puppy Food with a Trio of Proteins from Chicken Lamb and Salmon, 4 lb. Bag', 'product_name_Health One y Breed Adult Dry Dog Food', 'product_name_Hearth Grain-Free Dry Dog Food, Humanely Raised Meat Recipe with Non-GMO Superfoods and No Artificial Flav', 'product_name_Hearth ry Dog Food, Humanely Raised Meat Recipe with Non-GMO Superfoods and No Artificial Flavors or Prese', 'product_name_K99 Super Premium Dog Food – Professional Dry Dog Food – Super Premium Dog Food with 26% Protein, Glute', 'product_name_K99 og Food – Professional Dry Dog Food – Super Premium Dog Food with 26% Protein, Gluten Free - for Hi', 'product_name_Kastle Original Savory Beef & Chicken Dry Dog Food', 'product_name_King Dry Puppy Food', 'product_name_King Health Nutrition Medium Adult Dry Dog Food', 'product_name_King Health Nutrition Small Adult Dry Dog Food', 'product_name_King th Nutrition French Bulldog Dry Puppy Food', 'product_name_Omaha Natural Dry Dog Food, Raw Coated Whole Grain Dog Food', 'product_name_Omaha y Dog Food, Raw Coated Whole Grain Dog Food', 'product_name_Paws Adult Dry Dog Food for Healthy Weight, Chicken', 'product_name_Paws Dry Dog Food, Chicken & Lamb', 'product_name_Paws Large Breed Adult Dry Dog Food, Chicken & Lamb', 'product_name_Paws Minichunks Adult Dry Dog Food, Chicken', 'product_name_Paws d for Healthy Weight, Chicken', 'product_name_Perro Complete Turkey & Salmon Recipe Senior Grain-Free Freeze-Dried Raw Dog Food', 'product_name_Playtime Limited Ingredient Formula Grain-Free Dry Dog Food', 'product_name_Playtime edient Formula Grain-Free Dry Dog Food', 'product_name_Rivera High Protein Adult Dry Dog Food, Wholesome Grains and Grain Free', 'product_name_Rivera lt Dry Dog Food, Wholesome Grains and Grain Free', 'product_name_Romero Food Variety Packs – 24 Trays', 'product_name_Romero Gourmet Wet Dog Food Variety Packs – 24 Trays', 'product_name_Romero Soft Wet Dog Food Pot Roast & Vegetable, Beef Stew, Turkey Potato & Green Bean, and Hearth Chicken', 'product_name_Romero ft Wet Dog Food Pot Roast & Vegetable, Beef Stew, Turkey Potato & Green Bean, and Hearth Chicken &', 'product_name_Ruby & Coat Real Fish Recipe Dry Dog Food with Protein, and Probiotics', 'product_name_Ruby Dry Senior Dog Food Formula High Quality With Protein, Probiotics, Superfoods, And Antioxidants', 'product_name_Ruby Premium Formulas Dry Dog Food for Adult Dogs Made with Real Meat Protein, Superfoods, Probiotics and Antioxidants for Su', 'product_name_Ruby Skin & Coat Real Fish Recipe Dry Dog Food with Protein, and Probiotics', 'product_name_Seattle Gourmet Adult 7+ Small Bites Chicken Meal, Barley & Brown Rice Recipe Dry Dog Food, 15 lb. Bag', 'product_name_Seattle Gourmet Dry Dog Food, Adult 1-5, Large Breed', 'product_name_Seattle Gourmet Dry Dog Food, Adult 1-6', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Large Breed, Light, Chicken Meal & Barley Recipe', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Sensitive Stomach & Skin Recipes', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Small Paws for Small Breed Dogs', 'product_name_Seattle Gourmet y Dog Food, Adult 1-5, Large Breed', 'product_name_Seattle Gourmet y Dog Food, Adult 1-6', 'product_name_Seattle Gourmet y Dog Food, Adult, Large Breed, Light, Chicken Meal & Barley Recipe for Healthy Weight & Weight Man', 'product_name_Seattle Gourmet y Dog Food, Adult, Sensitive Stomach & Skin Recipes', 'product_name_Seattle Gourmet y Dog Food, Adult, Small Paws for Small Breed Dogs', 'product_name_Top Adult Dry Dog Food', 'product_name_Top Bites Dry Dog Food, Chicken & Rice Recipe, 4 Pound Bag', 'product_name_Top Dry Dog Food', 'product_name_Top Grain-Free Salmon, Sweet Potato & Pumpkin Dry Dog Food', 'product_name_Top Limited Ingredient Diet | Adult Grain-Free Dry Dog Food', 'product_name_Top Small Bites Dry Dog Food, Chicken & Rice Recipe, 4 Pound Bag', 'gender_F', 'gender_M', 'city_Abilene', 'city_Aiken', 'city_Akron', 'city_Albany', 'city_Albuquerque', 'city_Alexandria', 'city_Allentown', 'city_Alpharetta', 'city_Amarillo', 'city_Anaheim', 'city_Anchorage', 'city_Anderson', 'city_Ann Arbor', 'city_Annapolis', 'city_Anniston', 'city_Apache Junction', 'city_Appleton', 'city_Arlington', 'city_Arvada', 'city_Ashburn', 'city_Asheville', 'city_Athens', 'city_Atlanta', 'city_Augusta', 'city_Aurora', 'city_Austin', 'city_Bakersfield', 'city_Baltimore', 'city_Baton Rouge', 'city_Battle Creek', 'city_Beaufort', 'city_Beaumont', 'city_Bellevue', 'city_Berkeley', 'city_Bethesda', 'city_Bethlehem', 'city_Billings', 'city_Biloxi', 'city_Birmingham', 'city_Bismarck', 'city_Bloomington', 'city_Boca Raton', 'city_Boise', 'city_Bonita Springs', 'city_Boston', 'city_Boulder', 'city_Boynton Beach', 'city_Bozeman', 'city_Bradenton', 'city_Brea', 'city_Bridgeport', 'city_Brockton', 'city_Bronx', 'city_Brooklyn', 'city_Bryan', 'city_Buffalo', 'city_Burbank', 'city_Cambridge', 'city_Camden', 'city_Canton', 'city_Carlsbad', 'city_Carol Stream', 'city_Carson City', 'city_Cedar Rapids', 'city_Champaign', 'city_Charleston', 'city_Charlotte', 'city_Charlottesville', 'city_Chattanooga', 'city_Chesapeake', 'city_Cheyenne', 'city_Chicago', 'city_Chico', 'city_Chula Vista', 'city_Cincinnati', 'city_Clearwater', 'city_Cleveland', 'city_College Station', 'city_Colorado Springs', 'city_Columbia', 'city_Columbus', 'city_Concord', 'city_Conroe', 'city_Corona', 'city_Corpus Christi', 'city_Cumming', 'city_Dallas', 'city_Danbury', 'city_Davenport', 'city_Dayton', 'city_Daytona Beach', 'city_Dearborn', 'city_Decatur', 'city_Delray Beach', 'city_Denton', 'city_Denver', 'city_Des Moines', 'city_Detroit', 'city_Dulles', 'city_Duluth', 'city_Durham', 'city_East Saint Louis', 'city_Edmond', 'city_El Paso', 'city_Elizabeth', 'city_Elmira', 'city_Erie', 'city_Escondido', 'city_Eugene', 'city_Evanston', 'city_Evansville', 'city_Everett', 'city_Fairbanks', 'city_Fairfax', 'city_Fairfield', 'city_Falls Church', 'city_Fargo', 'city_Farmington', 'city_Fayetteville', 'city_Flint', 'city_Florence', 'city_Flushing', 'city_Fort Collins', 'city_Fort Lauderdale', 'city_Fort Myers', 'city_Fort Pierce', 'city_Fort Smith', 'city_Fort Wayne', 'city_Fort Worth', 'city_Frankfort', 'city_Frederick', 'city_Fredericksburg', 'city_Fresno', 'city_Fullerton', 'city_Gadsden', 'city_Gainesville', 'city_Gaithersburg', 'city_Galveston', 'city_Garden Grove', 'city_Garland', 'city_Gary', 'city_Gatesville', 'city_Gilbert', 'city_Glendale', 'city_Grand Forks', 'city_Grand Junction', 'city_Grand Rapids', 'city_Great Neck', 'city_Greeley', 'city_Green Bay', 'city_Greensboro', 'city_Greenville', 'city_Gulfport', 'city_Hagerstown', 'city_Hamilton', 'city_Hampton', 'city_Harrisburg', 'city_Hartford', 'city_Hattiesburg', 'city_Hayward', 'city_Helena', 'city_Henderson', 'city_Herndon', 'city_Hialeah', 'city_Hicksville', 'city_High Point', 'city_Hollywood', 'city_Honolulu', 'city_Hot Springs National Park', 'city_Houston', 'city_Humble', 'city_Huntington', 'city_Huntington Beach', 'city_Huntsville', 'city_Hyattsville', 'city_Idaho Falls', 'city_Independence', 'city_Indianapolis', 'city_Inglewood', 'city_Iowa City', 'city_Irvine', 'city_Irving', 'city_Jackson', 'city_Jacksonville', 'city_Jamaica', 'city_Jefferson City', 'city_Jeffersonville', 'city_Jersey City', 'city_Johnson City', 'city_Johnstown', 'city_Joliet', 'city_Juneau', 'city_Kalamazoo', 'city_Kansas City', 'city_Katy', 'city_Killeen', 'city_Kingsport', 'city_Kissimmee', 'city_Knoxville', 'city_Lafayette', 'city_Lake Charles', 'city_Lake Worth', 'city_Lakeland', 'city_Lakewood', 'city_Lancaster', 'city_Lansing', 'city_Laredo', 'city_Largo', 'city_Las Cruces', 'city_Las Vegas', 'city_Laurel', 'city_Lawrenceville', 'city_Lees Summit', 'city_Lehigh Acres', 'city_Levittown', 'city_Lexington', 'city_Lima', 'city_Lincoln', 'city_Little Rock', 'city_Littleton', 'city_London', 'city_Long Beach', 'city_Longview', 'city_Loretto', 'city_Los Angeles', 'city_Louisville', 'city_Lubbock', 'city_Lynchburg', 'city_Lynn', 'city_Macon', 'city_Madison', 'city_Manassas', 'city_Manchester', 'city_Mansfield', 'city_Maple Plain', 'city_Marietta', 'city_Melbourne', 'city_Memphis', 'city_Meridian', 'city_Mesa', 'city_Mesquite', 'city_Metairie', 'city_Miami', 'city_Midland', 'city_Migrate', 'city_Milwaukee', 'city_Minneapolis', 'city_Missoula', 'city_Mobile', 'city_Modesto', 'city_Monroe', 'city_Montgomery', 'city_Monticello', 'city_Montpelier', 'city_Moreno Valley', 'city_Mountain View', 'city_Muncie', 'city_Murfreesboro', 'city_Muskegon', 'city_Myrtle Beach', 'city_Naperville', 'city_Naples', 'city_Nashville', 'city_New Brunswick', 'city_New Castle', 'city_New Haven', 'city_New Hyde Park', 'city_New Orleans', 'city_New York City', 'city_Newark', 'city_Newport News', 'city_Newton', 'city_Norcross', 'city_Norfolk', 'city_Norman', 'city_North Hollywood', 'city_North Las Vegas', 'city_North Little Rock', 'city_North Port', 'city_Northridge', 'city_Norwalk', 'city_Oakland', 'city_Ocala', 'city_Odessa', 'city_Ogden', 'city_Oklahoma City', 'city_Olympia', 'city_Omaha', 'city_Orange', 'city_Orlando', 'city_Oxnard', 'city_Palatine', 'city_Palmdale', 'city_Palo Alto', 'city_Panama City', 'city_Pasadena', 'city_Paterson', 'city_Pensacola', 'city_Peoria', 'city_Petaluma', 'city_Philadelphia', 'city_Phoenix', 'city_Pinellas Park', 'city_Pittsburgh', 'city_Pocatello', 'city_Pomona', 'city_Pompano Beach', 'city_Port Charlotte', 'city_Port Saint Lucie', 'city_Port Washington', 'city_Portland', 'city_Portsmouth', 'city_Prescott', 'city_Providence', 'city_Provo', 'city_Pueblo', 'city_Punta Gorda', 'city_Racine', 'city_Raleigh', 'city_Reading', 'city_Redwood City', 'city_Reno', 'city_Reston', 'city_Richmond', 'city_Ridgely', 'city_Riverside', 'city_Roanoke', 'city_Rochester', 'city_Rockford', 'city_Rockville', 'city_Round Rock', 'city_Sacramento', 'city_Saginaw', 'city_Saint Augustine', 'city_Saint Cloud', 'city_Saint Joseph', 'city_Saint Louis', 'city_Saint Paul', 'city_Saint Petersburg', 'city_Salem', 'city_Salinas', 'city_Salt Lake City', 'city_San Angelo', 'city_San Antonio', 'city_San Bernardino', 'city_San Diego', 'city_San Francisco', 'city_San Jose', 'city_San Luis Obispo', 'city_San Rafael', 'city_Sandy', 'city_Santa Ana', 'city_Santa Barbara', 'city_Santa Clara', 'city_Santa Fe', 'city_Santa Monica', 'city_Santa Rosa', 'city_Sarasota', 'city_Savannah', 'city_Schaumburg', 'city_Scottsdale', 'city_Scranton', 'city_Seattle', 'city_Seminole', 'city_Shawnee Mission', 'city_Shreveport', 'city_Silver Spring', 'city_Simi Valley', 'city_Sioux City', 'city_Sioux Falls', 'city_South Bend', 'city_South Lake Tahoe', 'city_Southfield', 'city_Sparks', 'city_Spartanburg', 'city_Spokane', 'city_Spring', 'city_Spring Hill', 'city_Springfield', 'city_Stamford', 'city_Staten Island', 'city_Sterling', 'city_Stockton', 'city_Suffolk', 'city_Sunnyvale', 'city_Syracuse', 'city_Tacoma', 'city_Tallahassee', 'city_Tampa', 'city_Tempe', 'city_Temple', 'city_Terre Haute', 'city_Texarkana', 'city_Toledo', 'city_Topeka', 'city_Torrance', 'city_Trenton', 'city_Troy', 'city_Tucson', 'city_Tulsa', 'city_Tuscaloosa', 'city_Tyler', 'city_Utica', 'city_Valdosta', 'city_Valley Forge', 'city_Van Nuys', 'city_Vancouver', 'city_Ventura', 'city_Vero Beach', 'city_Vienna', 'city_Virginia Beach', 'city_Visalia', 'city_Waco', 'city_Waltham', 'city_Warren', 'city_Washington', 'city_Waterbury', 'city_Waterloo', 'city_West Hartford', 'city_West Palm Beach', 'city_White Plains', 'city_Whittier', 'city_Wichita', 'city_Wichita Falls', 'city_Wilkes Barre', 'city_Wilmington', 'city_Winston Salem', 'city_Winter Haven', 'city_Woburn', 'city_Worcester', 'city_Yakima', 'city_Yonkers', 'city_York', 'city_Young America', 'city_Youngstown', 'city_Zephyrhills', 'st_AK', 'st_AL', 'st_AR', 'st_AZ', 'st_CA', 'st_CO', 'st_CT', 'st_DC', 'st_DE', 'st_FL', 'st_GA', 'st_HI', 'st_IA', 'st_ID', 'st_IL', 'st_IN', 'st_KS', 'st_KY', 'st_LA', 'st_MA', 'st_MD', 'st_MI', 'st_MN', 'st_MO', 'st_MS', ...]
reversed_list = column_list[::-1]
reversed_list
['age_65+', 'age_55-64', 'age_45-54', 'age_35-44', 'age_25-34', 'age_18-24', 'income_Less than $20,000', 'income_$80,000 - $99,999', 'income_$60,000 - $79,999', 'income_$40,000 - $59,999', 'income_$20,000 - $39,999', 'income_$100,000 or more', 'education_Some college or trade school', 'education_Post graduate', 'education_High school graduate', 'education_College graduate', 'marital_Single', 'marital_Married', 'marital_Domestic partner/serious relationship', 'st_WY', 'st_WV', 'st_WI', 'st_WA', 'st_VT', 'st_VA', 'st_UT', 'st_TX', 'st_TN', 'st_SD', 'st_SC', 'st_RI', 'st_PA', 'st_OR', 'st_OK', 'st_OH', 'st_NY', 'st_NV', 'st_NM', 'st_NJ', 'st_NH', 'st_NE', 'st_ND', 'st_NC', 'st_MT', 'st_MS', 'st_MO', 'st_MN', 'st_MI', 'st_MD', 'st_MA', 'st_LA', 'st_KY', 'st_KS', 'st_IN', 'st_IL', 'st_ID', 'st_IA', 'st_HI', 'st_GA', 'st_FL', 'st_DE', 'st_DC', 'st_CT', 'st_CO', 'st_CA', 'st_AZ', 'st_AR', 'st_AL', 'st_AK', 'city_Zephyrhills', 'city_Youngstown', 'city_Young America', 'city_York', 'city_Yonkers', 'city_Yakima', 'city_Worcester', 'city_Woburn', 'city_Winter Haven', 'city_Winston Salem', 'city_Wilmington', 'city_Wilkes Barre', 'city_Wichita Falls', 'city_Wichita', 'city_Whittier', 'city_White Plains', 'city_West Palm Beach', 'city_West Hartford', 'city_Waterloo', 'city_Waterbury', 'city_Washington', 'city_Warren', 'city_Waltham', 'city_Waco', 'city_Visalia', 'city_Virginia Beach', 'city_Vienna', 'city_Vero Beach', 'city_Ventura', 'city_Vancouver', 'city_Van Nuys', 'city_Valley Forge', 'city_Valdosta', 'city_Utica', 'city_Tyler', 'city_Tuscaloosa', 'city_Tulsa', 'city_Tucson', 'city_Troy', 'city_Trenton', 'city_Torrance', 'city_Topeka', 'city_Toledo', 'city_Texarkana', 'city_Terre Haute', 'city_Temple', 'city_Tempe', 'city_Tampa', 'city_Tallahassee', 'city_Tacoma', 'city_Syracuse', 'city_Sunnyvale', 'city_Suffolk', 'city_Stockton', 'city_Sterling', 'city_Staten Island', 'city_Stamford', 'city_Springfield', 'city_Spring Hill', 'city_Spring', 'city_Spokane', 'city_Spartanburg', 'city_Sparks', 'city_Southfield', 'city_South Lake Tahoe', 'city_South Bend', 'city_Sioux Falls', 'city_Sioux City', 'city_Simi Valley', 'city_Silver Spring', 'city_Shreveport', 'city_Shawnee Mission', 'city_Seminole', 'city_Seattle', 'city_Scranton', 'city_Scottsdale', 'city_Schaumburg', 'city_Savannah', 'city_Sarasota', 'city_Santa Rosa', 'city_Santa Monica', 'city_Santa Fe', 'city_Santa Clara', 'city_Santa Barbara', 'city_Santa Ana', 'city_Sandy', 'city_San Rafael', 'city_San Luis Obispo', 'city_San Jose', 'city_San Francisco', 'city_San Diego', 'city_San Bernardino', 'city_San Antonio', 'city_San Angelo', 'city_Salt Lake City', 'city_Salinas', 'city_Salem', 'city_Saint Petersburg', 'city_Saint Paul', 'city_Saint Louis', 'city_Saint Joseph', 'city_Saint Cloud', 'city_Saint Augustine', 'city_Saginaw', 'city_Sacramento', 'city_Round Rock', 'city_Rockville', 'city_Rockford', 'city_Rochester', 'city_Roanoke', 'city_Riverside', 'city_Ridgely', 'city_Richmond', 'city_Reston', 'city_Reno', 'city_Redwood City', 'city_Reading', 'city_Raleigh', 'city_Racine', 'city_Punta Gorda', 'city_Pueblo', 'city_Provo', 'city_Providence', 'city_Prescott', 'city_Portsmouth', 'city_Portland', 'city_Port Washington', 'city_Port Saint Lucie', 'city_Port Charlotte', 'city_Pompano Beach', 'city_Pomona', 'city_Pocatello', 'city_Pittsburgh', 'city_Pinellas Park', 'city_Phoenix', 'city_Philadelphia', 'city_Petaluma', 'city_Peoria', 'city_Pensacola', 'city_Paterson', 'city_Pasadena', 'city_Panama City', 'city_Palo Alto', 'city_Palmdale', 'city_Palatine', 'city_Oxnard', 'city_Orlando', 'city_Orange', 'city_Omaha', 'city_Olympia', 'city_Oklahoma City', 'city_Ogden', 'city_Odessa', 'city_Ocala', 'city_Oakland', 'city_Norwalk', 'city_Northridge', 'city_North Port', 'city_North Little Rock', 'city_North Las Vegas', 'city_North Hollywood', 'city_Norman', 'city_Norfolk', 'city_Norcross', 'city_Newton', 'city_Newport News', 'city_Newark', 'city_New York City', 'city_New Orleans', 'city_New Hyde Park', 'city_New Haven', 'city_New Castle', 'city_New Brunswick', 'city_Nashville', 'city_Naples', 'city_Naperville', 'city_Myrtle Beach', 'city_Muskegon', 'city_Murfreesboro', 'city_Muncie', 'city_Mountain View', 'city_Moreno Valley', 'city_Montpelier', 'city_Monticello', 'city_Montgomery', 'city_Monroe', 'city_Modesto', 'city_Mobile', 'city_Missoula', 'city_Minneapolis', 'city_Milwaukee', 'city_Migrate', 'city_Midland', 'city_Miami', 'city_Metairie', 'city_Mesquite', 'city_Mesa', 'city_Meridian', 'city_Memphis', 'city_Melbourne', 'city_Marietta', 'city_Maple Plain', 'city_Mansfield', 'city_Manchester', 'city_Manassas', 'city_Madison', 'city_Macon', 'city_Lynn', 'city_Lynchburg', 'city_Lubbock', 'city_Louisville', 'city_Los Angeles', 'city_Loretto', 'city_Longview', 'city_Long Beach', 'city_London', 'city_Littleton', 'city_Little Rock', 'city_Lincoln', 'city_Lima', 'city_Lexington', 'city_Levittown', 'city_Lehigh Acres', 'city_Lees Summit', 'city_Lawrenceville', 'city_Laurel', 'city_Las Vegas', 'city_Las Cruces', 'city_Largo', 'city_Laredo', 'city_Lansing', 'city_Lancaster', 'city_Lakewood', 'city_Lakeland', 'city_Lake Worth', 'city_Lake Charles', 'city_Lafayette', 'city_Knoxville', 'city_Kissimmee', 'city_Kingsport', 'city_Killeen', 'city_Katy', 'city_Kansas City', 'city_Kalamazoo', 'city_Juneau', 'city_Joliet', 'city_Johnstown', 'city_Johnson City', 'city_Jersey City', 'city_Jeffersonville', 'city_Jefferson City', 'city_Jamaica', 'city_Jacksonville', 'city_Jackson', 'city_Irving', 'city_Irvine', 'city_Iowa City', 'city_Inglewood', 'city_Indianapolis', 'city_Independence', 'city_Idaho Falls', 'city_Hyattsville', 'city_Huntsville', 'city_Huntington Beach', 'city_Huntington', 'city_Humble', 'city_Houston', 'city_Hot Springs National Park', 'city_Honolulu', 'city_Hollywood', 'city_High Point', 'city_Hicksville', 'city_Hialeah', 'city_Herndon', 'city_Henderson', 'city_Helena', 'city_Hayward', 'city_Hattiesburg', 'city_Hartford', 'city_Harrisburg', 'city_Hampton', 'city_Hamilton', 'city_Hagerstown', 'city_Gulfport', 'city_Greenville', 'city_Greensboro', 'city_Green Bay', 'city_Greeley', 'city_Great Neck', 'city_Grand Rapids', 'city_Grand Junction', 'city_Grand Forks', 'city_Glendale', 'city_Gilbert', 'city_Gatesville', 'city_Gary', 'city_Garland', 'city_Garden Grove', 'city_Galveston', 'city_Gaithersburg', 'city_Gainesville', 'city_Gadsden', 'city_Fullerton', 'city_Fresno', 'city_Fredericksburg', 'city_Frederick', 'city_Frankfort', 'city_Fort Worth', 'city_Fort Wayne', 'city_Fort Smith', 'city_Fort Pierce', 'city_Fort Myers', 'city_Fort Lauderdale', 'city_Fort Collins', 'city_Flushing', 'city_Florence', 'city_Flint', 'city_Fayetteville', 'city_Farmington', 'city_Fargo', 'city_Falls Church', 'city_Fairfield', 'city_Fairfax', 'city_Fairbanks', 'city_Everett', 'city_Evansville', 'city_Evanston', 'city_Eugene', 'city_Escondido', 'city_Erie', 'city_Elmira', 'city_Elizabeth', 'city_El Paso', 'city_Edmond', 'city_East Saint Louis', 'city_Durham', 'city_Duluth', 'city_Dulles', 'city_Detroit', 'city_Des Moines', 'city_Denver', 'city_Denton', 'city_Delray Beach', 'city_Decatur', 'city_Dearborn', 'city_Daytona Beach', 'city_Dayton', 'city_Davenport', 'city_Danbury', 'city_Dallas', 'city_Cumming', 'city_Corpus Christi', 'city_Corona', 'city_Conroe', 'city_Concord', 'city_Columbus', 'city_Columbia', 'city_Colorado Springs', 'city_College Station', 'city_Cleveland', 'city_Clearwater', 'city_Cincinnati', 'city_Chula Vista', 'city_Chico', 'city_Chicago', 'city_Cheyenne', 'city_Chesapeake', 'city_Chattanooga', 'city_Charlottesville', 'city_Charlotte', 'city_Charleston', 'city_Champaign', 'city_Cedar Rapids', 'city_Carson City', 'city_Carol Stream', 'city_Carlsbad', 'city_Canton', 'city_Camden', 'city_Cambridge', 'city_Burbank', 'city_Buffalo', 'city_Bryan', 'city_Brooklyn', 'city_Bronx', 'city_Brockton', 'city_Bridgeport', 'city_Brea', 'city_Bradenton', 'city_Bozeman', 'city_Boynton Beach', 'city_Boulder', 'city_Boston', 'city_Bonita Springs', 'city_Boise', 'city_Boca Raton', 'city_Bloomington', 'city_Bismarck', 'city_Birmingham', 'city_Biloxi', 'city_Billings', 'city_Bethlehem', 'city_Bethesda', 'city_Berkeley', 'city_Bellevue', 'city_Beaumont', 'city_Beaufort', 'city_Battle Creek', 'city_Baton Rouge', 'city_Baltimore', 'city_Bakersfield', 'city_Austin', 'city_Aurora', 'city_Augusta', 'city_Atlanta', 'city_Athens', 'city_Asheville', 'city_Ashburn', 'city_Arvada', 'city_Arlington', 'city_Appleton', 'city_Apache Junction', 'city_Anniston', 'city_Annapolis', 'city_Ann Arbor', 'city_Anderson', 'city_Anchorage', 'city_Anaheim', 'city_Amarillo', 'city_Alpharetta', 'city_Allentown', 'city_Alexandria', 'city_Albuquerque', 'city_Albany', 'city_Akron', 'city_Aiken', 'city_Abilene', 'gender_M', 'gender_F', 'product_name_Top Small Bites Dry Dog Food, Chicken & Rice Recipe, 4 Pound Bag', 'product_name_Top Limited Ingredient Diet | Adult Grain-Free Dry Dog Food', 'product_name_Top Grain-Free Salmon, Sweet Potato & Pumpkin Dry Dog Food', 'product_name_Top Dry Dog Food', 'product_name_Top Bites Dry Dog Food, Chicken & Rice Recipe, 4 Pound Bag', 'product_name_Top Adult Dry Dog Food', 'product_name_Seattle Gourmet y Dog Food, Adult, Small Paws for Small Breed Dogs', 'product_name_Seattle Gourmet y Dog Food, Adult, Sensitive Stomach & Skin Recipes', 'product_name_Seattle Gourmet y Dog Food, Adult, Large Breed, Light, Chicken Meal & Barley Recipe for Healthy Weight & Weight Man', 'product_name_Seattle Gourmet y Dog Food, Adult 1-6', 'product_name_Seattle Gourmet y Dog Food, Adult 1-5, Large Breed', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Small Paws for Small Breed Dogs', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Sensitive Stomach & Skin Recipes', 'product_name_Seattle Gourmet Dry Dog Food, Adult, Large Breed, Light, Chicken Meal & Barley Recipe', 'product_name_Seattle Gourmet Dry Dog Food, Adult 1-6', 'product_name_Seattle Gourmet Dry Dog Food, Adult 1-5, Large Breed', 'product_name_Seattle Gourmet Adult 7+ Small Bites Chicken Meal, Barley & Brown Rice Recipe Dry Dog Food, 15 lb. Bag', 'product_name_Ruby Skin & Coat Real Fish Recipe Dry Dog Food with Protein, and Probiotics', 'product_name_Ruby Premium Formulas Dry Dog Food for Adult Dogs Made with Real Meat Protein, Superfoods, Probiotics and Antioxidants for Su', 'product_name_Ruby Dry Senior Dog Food Formula High Quality With Protein, Probiotics, Superfoods, And Antioxidants', 'product_name_Ruby & Coat Real Fish Recipe Dry Dog Food with Protein, and Probiotics', 'product_name_Romero ft Wet Dog Food Pot Roast & Vegetable, Beef Stew, Turkey Potato & Green Bean, and Hearth Chicken &', 'product_name_Romero Soft Wet Dog Food Pot Roast & Vegetable, Beef Stew, Turkey Potato & Green Bean, and Hearth Chicken', 'product_name_Romero Gourmet Wet Dog Food Variety Packs – 24 Trays', 'product_name_Romero Food Variety Packs – 24 Trays', 'product_name_Rivera lt Dry Dog Food, Wholesome Grains and Grain Free', 'product_name_Rivera High Protein Adult Dry Dog Food, Wholesome Grains and Grain Free', 'product_name_Playtime edient Formula Grain-Free Dry Dog Food', 'product_name_Playtime Limited Ingredient Formula Grain-Free Dry Dog Food', 'product_name_Perro Complete Turkey & Salmon Recipe Senior Grain-Free Freeze-Dried Raw Dog Food', 'product_name_Paws d for Healthy Weight, Chicken', 'product_name_Paws Minichunks Adult Dry Dog Food, Chicken', 'product_name_Paws Large Breed Adult Dry Dog Food, Chicken & Lamb', 'product_name_Paws Dry Dog Food, Chicken & Lamb', 'product_name_Paws Adult Dry Dog Food for Healthy Weight, Chicken', 'product_name_Omaha y Dog Food, Raw Coated Whole Grain Dog Food', 'product_name_Omaha Natural Dry Dog Food, Raw Coated Whole Grain Dog Food', 'product_name_King th Nutrition French Bulldog Dry Puppy Food', 'product_name_King Health Nutrition Small Adult Dry Dog Food', 'product_name_King Health Nutrition Medium Adult Dry Dog Food', 'product_name_King Dry Puppy Food', 'product_name_Kastle Original Savory Beef & Chicken Dry Dog Food', 'product_name_K99 og Food – Professional Dry Dog Food – Super Premium Dog Food with 26% Protein, Gluten Free - for Hi', 'product_name_K99 Super Premium Dog Food – Professional Dry Dog Food – Super Premium Dog Food with 26% Protein, Glute', 'product_name_Hearth ry Dog Food, Humanely Raised Meat Recipe with Non-GMO Superfoods and No Artificial Flavors or Prese', 'product_name_Hearth Grain-Free Dry Dog Food, Humanely Raised Meat Recipe with Non-GMO Superfoods and No Artificial Flav', 'product_name_Health One y Breed Adult Dry Dog Food', 'product_name_Health One in Natural Dry Dog Puppy Food with a Trio of Proteins from Chicken Lamb and Salmon, 4 lb. Bag', 'product_name_Health One Ultra High Protein Natural Dry Dog Puppy Food with a Trio of Proteins from Chicken Lamb and Salmon', 'product_name_Health One Small & Toy Breed Adult Dry Dog Food', 'product_name_Health One Natural Choice Small Bites Adult Dry Dog Food, Lamb & Chicken', 'product_name_Health One NATURAL CHOICE Natural Adult Dry Dog Food, Chicken', 'product_name_Health One NATURAL CHOICE Natural Adult & Senior Dry Dog Food for Small & Toy Breeds', 'product_name_Health One High Protein Natural Dry Dog Food with a Trio of Proteins from Chicken, Lamb and Salmon, 4 lb. Bag', 'product_name_Health One Dog Food, Chicken Lamb & Salmon Flavor', 'product_name_Health One Adult Dry Dog Food, Chicken Lamb & Salmon Flavor', 'product_name_Hanover Original Recipe, 13lb, High-Protein Grain-Free Dry Dog Food', 'product_name_Garland y Grains Dry Dog Food with Real Meat', 'product_name_Garland ll Breed Dry Dog Food with Real Meat', 'product_name_Garland h Real Meat + Sweet Potato Dry Dog Food', 'product_name_Garland Small Breed Dry Dog Food with Real Meat', 'product_name_Garland Senior Dry Dog Food with Real Meat', 'product_name_Garland Real Meat Dry Dog Food Health Weight Recipe', 'product_name_Garland Healthy Grains Dry Dog Food with Real Meat', 'product_name_Garland Grain Free with Real Meat + Sweet Potato Dry Dog Food', 'product_name_Garland Food with Real Meat', 'product_name_Garland Dog Food Health Weight Recipe', 'product_name_Garland Classic Healthy Grains Dry Dog Food with Real Meat', 'product_name_Flora Kibble Dry Dog Food, 20 lb, with Plant Based Protein', 'product_name_Choice dult Dry Dog Food, Chicken & Steak', 'product_name_Choice Small Dog Complete Nutrition Small Breed Adult Dry Dog Food Grilled Steak and Vegetable Flavor Dog', 'product_name_Choice Small Breed Adult Dry Dog Food, Chicken & Steak', 'product_name_Choice Dry Dog Food', 'product_name_Choice Cuts in Gravy Adult Wet Dog Food, 3.5 oz. Pouches', 'product_name_Choice Chopped Ground Dinner Adult Wet Dog Food, 3.5 oz. Pouches', 'product_name_Bones Human Grade Dehydrated Whole Grain Dog Food – Complete Meal or Dog Food Topper', 'product_name_Bezt ection Formula Natural Adult Large Breed Dry Dog Food', 'product_name_Bezt ection Formula Natural Adult Beef and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Small Breed Wet Dog Food Cups, in Hearty Gravy, 3.5-oz Cups', 'product_name_Bezt Natural Senior Wet Dog Food, Chicken 12.5-oz can (Pack of 12)', 'product_name_Bezt Natural Senior Dry Dog Food, Chicken and Brown Rice', 'product_name_Bezt Natural Adult Wet Dog Food, 12.5-oz cans (Pack of 12)', 'product_name_Bezt Natural Adult Small Breed Dry Dog Food', 'product_name_Bezt Natural Adult Large Breed Dry Dog Food', 'product_name_Bezt Natural Adult Healthy Weight Chicken and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Adult Fish and Brown Rice Dry Dog Food', 'product_name_Bezt Natural Adult Dry Dog Food', 'product_name_Bezt Natural Adult Beef and Brown Rice Dry Dog Food', 'product_name_Bezt High Protein, Natural Adult Dry Dog Food', 'product_name_Bezt Adult Chicken and Brown Rice Recipe Dry Dog Food', 'product_name_Beethoven e-Flavored Salmon High Protein Recipes Premium Dry Dog Food with Real Salmon, Superfoods and Nutrie', 'product_name_Beethoven Wild Smoke-Flavored Salmon High Protein Recipes Premium Dry Dog Food with Real Salmon, Superfoods', 'product_name_Beethoven Roasted Bison and Venison High Protein Real Meat Recipes Premium Dry Dog Food with Superfoods and N', 'product_name_Beam y Dog Food, Beef, Pea & Brown Rice Recipe', 'product_name_Beam st 6 Limited Ingredient Diet Dry Dog Food', 'product_name_Beam sh Super Premium Dry Dog Food with Real Meat, Veggies & Fruit', 'product_name_Beam emium Natural Dry Dog Food, Real Chicken & Veggies Recipe, 28 Pounds (Packaging May Vary)', 'product_name_Beam Premium Natural Dry Dog Food, Real Chicken & Veggies Recipe, 28 Pounds', 'product_name_Beam Just 6 Limited Ingredient Diet Dry Dog Food', 'product_name_Beam Dry Dog Food, Beef, Pea & Brown Rice Recipe', 'product_name_Beam Dish Super Premium Dry Dog Food with Real Meat, Veggies & Fruit', 'product_name_Astro th Small Breed Dry Dog Food with Grains, Natural Ingredients, Made in USA with Real Turkey, for Dog', 'product_name_Astro ee High-Protein Dry Dog Food, Natural Ingredients, Made in USA with Real Meat, All Breeds, for Adul', 'product_name_Astro Small Breed Dry Dog Food with Grains, Natural Ingredients, Made in USA with Real Turkey, for Dogs U', 'product_name_Astro Grain-Free High-Protein Dry Dog Food, Natural Ingredients, Made in USA with Real Meat, All Breeds,', 'product_name_Arf lesome Grains Senior Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Arf Wholesome Grains Senior Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Arf Wholesome Grains Dry Dog Food (Chicken/Salmon/Beef/Lamb and Brown Rice)', 'product_name_Arf Wholesome Grains Adult Healthy Weight Dry Dog Food - Chicken & Brown Rice Recipe', 'product_name_Arf Wet Canned Dog Food 12.5/13.2 oz', 'product_name_Arf Soft & Tender American Jerky Dog Treats', 'product_name_Arf Jerky Dog Treats, 2 Lb Bag (Chicken, Duck, Sweet Potato Wraps)', 'product_name_Arf Dry Dog Food Large Breed with Grains (Chicken and Brown Rice)', 'product_name_Arf Dog Food, 35% Protein, No Added Grains (Beef, Salmon, Turkey, Lamb, Chicken)', 'product_name_Alpha robiotics Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice', 'product_name_Alpha n, Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 7.4 lb. Bag', 'product_name_Alpha ive Skin & Stomach, High Protein Dry Dog Food', 'product_name_Alpha Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice (Packaging May Vary)', 'product_name_Alpha Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice (Packagin', 'product_name_Alpha Sensitive Skin & Stomach, High Protein Dry Dog Food', 'product_name_Alpha Sensitive Skin & Stomach with Oats Adult Dry Dog Food', 'product_name_Alpha Probiotics Shredded Blend High Protein, Adult Dry Dog Food Chicken & Rice', 'product_name_Alpha Performance - High Protein Dry Dog Food - Chicken & Rice', 'product_name_Alpha Natural Sensitive Systems, Skin & Coat Salmon Adult Dry Dog Food', 'product_name_Alpha Natural Large Breed Formula Adult Dry Dog Food', 'product_name_Alpha Natural Healthy Weight Formula Adult Dry Dog Food & Wet Dog Food', 'product_name_Alpha Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 7.4 lb. Bag', 'product_name_Alpha Natural Dry Dog Food, True Instinct With Real Turkey & Venison - 15 lb. Bag', 'product_name_Alpha Natural Adult Lamb & Rice Dry Dog Food', 'product_name_Alpha Natural Adult Chicken & Rice Dry Dog Food', 'product_name_Alpha Natural Adult Beef & Rice Dry Dog Food', 'product_name_Alpha Moist & Meaty Steak Flavor Adult Dry Dog Food', 'product_name_Alpha High Protein Dog Food with Probiotics for Dogs, Shredded Blend Turkey & Rice Formula - 17 lb. Bag', 'product_name_Alpha ', 'product_brand_Top', 'product_brand_Seattle Gourmet', 'product_brand_Ruby', 'product_brand_Romero', 'product_brand_Rivera', 'product_brand_Playtime', 'product_brand_Perro', 'product_brand_Paws', 'product_brand_Omaha', 'product_brand_King', 'product_brand_Kastle', 'product_brand_K99', 'product_brand_Hearth', 'product_brand_Health One', 'product_brand_Hanover', 'product_brand_Garland', 'product_brand_Flora', 'product_brand_Choice', 'product_brand_Bones', 'product_brand_Bezt', 'product_brand_Beethoven', 'product_brand_Beam', 'product_brand_Astro', 'product_brand_Arf', 'product_brand_Alpha', 'ad_exp_Video ad', 'ad_exp_Sponsored Products', 'ad_exp_Sponsored Brands', 'ad_exp_Some other type of ad', "ad_exp_Don't recall seeing an ad", 'ad_exp_Display/banner ad', 'sale_date_2022-09-30', 'sale_date_2022-09-29', 'sale_date_2022-09-28', 'sale_date_2022-09-27', 'sale_date_2022-09-26', 'sale_date_2022-09-25', 'sale_date_2022-09-24', 'sale_date_2022-09-23', 'sale_date_2022-09-22', 'sale_date_2022-09-21', 'sale_date_2022-09-20', 'sale_date_2022-09-19', 'sale_date_2022-09-18', 'sale_date_2022-09-17', 'sale_date_2022-09-16', 'sale_date_2022-09-15', 'sale_date_2022-09-14', 'sale_date_2022-09-13', 'sale_date_2022-09-12', 'sale_date_2022-09-11', 'sale_date_2022-09-10', 'sale_date_2022-09-09', 'sale_date_2022-09-08', 'sale_date_2022-09-07', 'sale_date_2022-09-06', 'sale_date_2022-09-05', 'sale_date_2022-09-04', 'sale_date_2022-09-03', 'sale_date_2022-09-02', 'sale_date_2022-09-01', 'sale_date_2022-08-31', 'sale_date_2022-08-30', 'sale_date_2022-08-29', 'sale_date_2022-08-28', 'sale_date_2022-08-27', 'sale_date_2022-08-26', 'sale_date_2022-08-25', 'sale_date_2022-08-24', 'sale_date_2022-08-23', 'sale_date_2022-08-22', 'sale_date_2022-08-21', 'sale_date_2022-08-20', 'sale_date_2022-08-19', 'sale_date_2022-08-18', 'sale_date_2022-08-17', 'sale_date_2022-08-16', 'sale_date_2022-08-15', 'sale_date_2022-08-14', 'sale_date_2022-08-13', 'sale_date_2022-08-12', 'sale_date_2022-08-11', 'sale_date_2022-08-10', 'sale_date_2022-08-09', 'sale_date_2022-08-08', 'sale_date_2022-08-07', 'sale_date_2022-08-06', 'sale_date_2022-08-05', 'sale_date_2022-08-04', 'sale_date_2022-08-03', 'sale_date_2022-08-02', 'sale_date_2022-08-01', 'sale_date_2022-07-31', 'sale_date_2022-07-30', 'sale_date_2022-07-29', 'sale_date_2022-07-28', 'sale_date_2022-07-27', 'sale_date_2022-07-26', 'sale_date_2022-07-25', 'sale_date_2022-07-24', 'sale_date_2022-07-23', 'sale_date_2022-07-22', 'sale_date_2022-07-21', 'sale_date_2022-07-20', 'sale_date_2022-07-19', 'sale_date_2022-07-18', 'sale_date_2022-07-17', 'sale_date_2022-07-16', 'sale_date_2022-07-15', 'sale_date_2022-07-14', 'sale_date_2022-07-13', 'sale_date_2022-07-12', 'sale_date_2022-07-11', 'sale_date_2022-07-10', 'sale_date_2022-07-09', 'sale_date_2022-07-08', 'sale_date_2022-07-07', 'sale_date_2022-07-06', 'sale_date_2022-07-05', 'sale_date_2022-07-04', 'sale_date_2022-07-03', 'sale_date_2022-07-02', 'sale_date_2022-07-01', 'sale_date_2022-06-30', 'sale_date_2022-06-29', 'sale_date_2022-06-28', 'sale_date_2022-06-27', 'sale_date_2022-06-26', 'sale_date_2022-06-25', 'sale_date_2022-06-24', 'sale_date_2022-06-23', 'sale_date_2022-06-22', 'sale_date_2022-06-21', 'sale_date_2022-06-20', 'sale_date_2022-06-19', 'sale_date_2022-06-18', 'sale_date_2022-06-17', 'sale_date_2022-06-16', 'sale_date_2022-06-15', 'sale_date_2022-06-14', 'sale_date_2022-06-13', 'sale_date_2022-06-12', 'sale_date_2022-06-11', 'sale_date_2022-06-10', 'sale_date_2022-06-09', 'sale_date_2022-06-08', 'sale_date_2022-06-07', 'sale_date_2022-06-06', 'sale_date_2022-06-05', 'sale_date_2022-06-04', 'sale_date_2022-06-03', 'sale_date_2022-06-02', 'sale_date_2022-06-01', 'sale_date_2022-05-31', 'sale_date_2022-05-30', 'sale_date_2022-05-29', 'sale_date_2022-05-28', 'sale_date_2022-05-27', 'sale_date_2022-05-26', 'sale_date_2022-05-25', 'sale_date_2022-05-24', 'sale_date_2022-05-23', 'sale_date_2022-05-22', 'sale_date_2022-05-21', 'sale_date_2022-05-20', 'sale_date_2022-05-19', 'sale_date_2022-05-18', 'sale_date_2022-05-17', 'sale_date_2022-05-16', 'sale_date_2022-05-15', 'sale_date_2022-05-14', 'sale_date_2022-05-13', 'sale_date_2022-05-12', 'sale_date_2022-05-11', 'sale_date_2022-05-10', 'sale_date_2022-05-09', 'sale_date_2022-05-08', 'sale_date_2022-05-07', 'sale_date_2022-05-06', 'sale_date_2022-05-05', 'sale_date_2022-05-04', 'sale_date_2022-05-03', 'sale_date_2022-05-02', 'sale_date_2022-05-01', 'sale_date_2022-04-30', 'sale_date_2022-04-29', 'sale_date_2022-04-28', 'sale_date_2022-04-27', 'sale_date_2022-04-26', 'sale_date_2022-04-25', 'sale_date_2022-04-24', 'sale_date_2022-04-23', 'sale_date_2022-04-22', 'sale_date_2022-04-21', 'sale_date_2022-04-20', 'sale_date_2022-04-19', 'sale_date_2022-04-18', 'sale_date_2022-04-17', 'sale_date_2022-04-16', 'sale_date_2022-04-15', 'sale_date_2022-04-14', 'sale_date_2022-04-13', 'sale_date_2022-04-12', 'sale_date_2022-04-11', 'sale_date_2022-04-10', 'sale_date_2022-04-09', 'sale_date_2022-04-08', 'sale_date_2022-04-07', 'sale_date_2022-04-06', 'sale_date_2022-04-05', 'sale_date_2022-04-04', 'sale_date_2022-04-03', 'sale_date_2022-04-02', 'sale_date_2022-04-01', 'sale_date_2022-03-31', 'sale_date_2022-03-30', 'sale_date_2022-03-29', 'sale_date_2022-03-28', 'sale_date_2022-03-27', 'sale_date_2022-03-26', 'sale_date_2022-03-25', 'sale_date_2022-03-24', 'sale_date_2022-03-23', 'sale_date_2022-03-22', 'sale_date_2022-03-21', 'sale_date_2022-03-20', 'sale_date_2022-03-19', 'sale_date_2022-03-18', 'sale_date_2022-03-17', 'sale_date_2022-03-16', 'sale_date_2022-03-15', 'sale_date_2022-03-14', 'sale_date_2022-03-13', 'sale_date_2022-03-12', 'sale_date_2022-03-11', 'sale_date_2022-03-10', 'sale_date_2022-03-09', 'sale_date_2022-03-08', 'sale_date_2022-03-07', 'sale_date_2022-03-06', 'sale_date_2022-03-05', 'sale_date_2022-03-04', 'sale_date_2022-03-03', 'sale_date_2022-03-02', 'sale_date_2022-03-01', 'sale_date_2022-02-28', 'sale_date_2022-02-27', 'sale_date_2022-02-26', 'sale_date_2022-02-25', 'sale_date_2022-02-24', 'sale_date_2022-02-23', 'sale_date_2022-02-22', 'sale_date_2022-02-21', 'sale_date_2022-02-20', 'sale_date_2022-02-19', 'sale_date_2022-02-18', 'sale_date_2022-02-17', 'sale_date_2022-02-16', 'sale_date_2022-02-15', 'sale_date_2022-02-14', 'sale_date_2022-02-13', 'sale_date_2022-02-12', 'sale_date_2022-02-11', 'sale_date_2022-02-10', 'sale_date_2022-02-09', 'sale_date_2022-02-08', 'sale_date_2022-02-07', 'sale_date_2022-02-06', 'sale_date_2022-02-05', 'sale_date_2022-02-04', 'sale_date_2022-02-03', 'sale_date_2022-02-02', 'sale_date_2022-02-01', 'sale_date_2022-01-31', 'sale_date_2022-01-30', 'sale_date_2022-01-29', 'sale_date_2022-01-28', 'sale_date_2022-01-27', 'sale_date_2022-01-26', 'sale_date_2022-01-25', 'sale_date_2022-01-24', 'sale_date_2022-01-23', 'sale_date_2022-01-22', 'sale_date_2022-01-21', 'sale_date_2022-01-20', 'sale_date_2022-01-19', 'sale_date_2022-01-18', 'sale_date_2022-01-17', 'sale_date_2022-01-16', 'sale_date_2022-01-15', 'sale_date_2022-01-14', 'sale_date_2022-01-13', 'sale_date_2022-01-12', 'sale_date_2022-01-11', 'sale_date_2022-01-10', 'sale_date_2022-01-09', 'sale_date_2022-01-08', 'sale_date_2022-01-07', 'sale_date_2022-01-06', 'sale_date_2022-01-05', 'sale_date_2022-01-04', 'sale_date_2022-01-03', 'sale_date_2022-01-02', 'sale_date_2022-01-01', 'sale_date_2021-12-31', 'sale_date_2021-12-30', 'sale_date_2021-12-29', 'sale_date_2021-12-28', 'sale_date_2021-12-27', 'sale_date_2021-12-26', 'sale_date_2021-12-25', 'sale_date_2021-12-24', 'sale_date_2021-12-23', 'sale_date_2021-12-22', 'sale_date_2021-12-21', 'sale_date_2021-12-20', 'sale_date_2021-12-19', 'sale_date_2021-12-18', 'sale_date_2021-12-17', 'sale_date_2021-12-16', 'sale_date_2021-12-15', 'sale_date_2021-12-14', 'sale_date_2021-12-13', 'sale_date_2021-12-12', 'sale_date_2021-12-11', 'sale_date_2021-12-10', 'sale_date_2021-12-09', 'sale_date_2021-12-08', 'sale_date_2021-12-07', 'sale_date_2021-12-06', 'sale_date_2021-12-05', 'sale_date_2021-12-04', 'sale_date_2021-12-03', 'sale_date_2021-12-02', 'sale_date_2021-12-01', 'sale_date_2021-11-30', 'sale_date_2021-11-29', 'sale_date_2021-11-28', 'sale_date_2021-11-27', 'sale_date_2021-11-26', 'sale_date_2021-11-25', 'sale_date_2021-11-24', 'sale_date_2021-11-23', 'sale_date_2021-11-22', 'sale_date_2021-11-21', 'sale_date_2021-11-20', 'sale_date_2021-11-19', 'sale_date_2021-11-18', 'sale_date_2021-11-17', 'sale_date_2021-11-16', 'sale_date_2021-11-15', 'sale_date_2021-11-14', 'sale_date_2021-11-13', 'sale_date_2021-11-12', 'sale_date_2021-11-11', 'sale_date_2021-11-10', 'sale_date_2021-11-09', 'sale_date_2021-11-08', 'sale_date_2021-11-07', ...]
columns_ad_exp = ['ad_exp_Display/banner ad',
"ad_exp_Don't recall seeing an ad",
'ad_exp_Some other type of ad',
'ad_exp_Sponsored Brands',
'ad_exp_Sponsored Products',
'ad_exp_Video ad']
max_column = ''
max_count = -1
for column in columns_ad_exp:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = ad_exp_Don't recall seeing an ad, count = 113
columns_brand = ['product_brand_Alpha',
'product_brand_Arf',
'product_brand_Astro',
'product_brand_Beam',
'product_brand_Beethoven',
'product_brand_Bezt',
'product_brand_Bones',
'product_brand_Choice',
'product_brand_Flora',
'product_brand_Garland',
'product_brand_Hanover',
'product_brand_Health One',
'product_brand_Hearth',
'product_brand_K99',
'product_brand_Kastle',
'product_brand_King',
'product_brand_Omaha',
'product_brand_Paws',
'product_brand_Perro',
'product_brand_Playtime',
'product_brand_Rivera',
'product_brand_Romero',
'product_brand_Ruby',
'product_brand_Seattle Gourmet',
'product_brand_Top']
max_column = ''
max_count = -1
for column in columns_brand:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = product_brand_Alpha, count = 122
columns_gender = [ 'gender_F',
'gender_M']
max_column = ''
max_count = -1
for column in columns_gender:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = gender_M, count = 204
sum(df8['prime'])
295
columns_marital = [ 'marital_Single',
'marital_Married',
'marital_Domestic partner/serious relationship']
max_column = ''
max_count = -1
for column in columns_marital:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = marital_Married, count = 198
columns_education = [ 'education_Some college or trade school',
'education_Post graduate',
'education_High school graduate',
'education_College graduate']
max_column = ''
max_count = -1
for column in columns_education:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = education_College graduate, count = 188
columns_income = ['income_Less than $20,000',
'income_$80,000 - $99,999',
'income_$60,000 - $79,999',
'income_$40,000 - $59,999',
'income_$20,000 - $39,999',
'income_$100,000 or more']
max_column = ''
max_count = -1
for column in columns_income:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = income_$100,000 or more, count = 122
columns_age = ['age_65+',
'age_55-64',
'age_45-54',
'age_35-44',
'age_25-34',
'age_18-24']
max_column = ''
max_count = -1
for column in columns_age:
count = df8[column].sum()
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = age_45-54, count = 92
option 2
df8.head()
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 19 | 0 | -1.350127 | 1 | 70116 | 29.9686 | -90.0646 | 1 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 29 | 0 | -0.770414 | 1 | 68517 | 40.9317 | -96.6045 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 30 | 0 | -1.007592 | 1 | 66160 | 39.0966 | -94.7495 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 41 | 0 | 3.381947 | 1 | 70179 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 71 | 0 | 0.260186 | 1 | 70165 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
5 rows × 1044 columns
df1.head()
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 0 | -0.699510 | 1 | 60624 | 41.8804 | -87.7223 | 1 | 1 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 33 | 0 | 0.842396 | 1 | 62723 | 39.7495 | -89.6060 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 48 | 0 | 0.260186 | 1 | 55127 | 45.0803 | -93.0875 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 50 | 1 | -0.629605 | 1 | 57110 | 43.5486 | -96.6332 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 54 | 0 | 0.149337 | 1 | 62711 | 39.7655 | -89.7293 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5 rows × 1044 columns
from statistics import mean
mean(df0['price']*df0['qty'])
-0.015045486214909818
mean(df1['price']*df1['qty'])
-0.024412121773835907
mean(df2['price']*df2['qty'])
0.08744795926327455
mean(df3['price']*df3['qty'])
-0.024019945030047857
mean(df4['price']*df4['qty'])
-0.0200793420043912
mean(df5['price']*df5['qty'])
-0.052724937111071644
mean(df6['price']*df6['qty'])
0.06573791243837343
mean(df7['price']*df7['qty'])
-0.05638635074643973
mean(df8['price']*df8['qty'])
0.0837901853442486
mean(df9['price'])
-0.03373996008532421
d = {'cluster': ['df0', 'df1', 'df2', 'df3', 'df4', 'df5', 'df6', 'df7', 'df8', 'df9'],
'pricexquantity': [mean(df0['price']*df0['qty']), mean(df1['price']*df1['qty']),
mean(df2['price']*df2['qty']),mean(df3['price']*df3['qty']),
mean(df4['price']*df4['qty']), mean(df5['price']*df5['qty']),
mean(df6['price']*df6['qty']), mean(df7['price']*df7['qty']),
mean(df8['price']*df8['qty']), mean(df9['price']*df9['qty']),
],
'rows': [len(df0), len(df1), len(df2), len(df3), len(df4), len(df5), len(df6),
len(df7), len(df8), len(df9)]
}
result = pd.DataFrame(d)
result
| cluster | pricexquantity | rows | |
|---|---|---|---|
| 0 | df0 | -0.015045 | 963 |
| 1 | df1 | -0.024412 | 685 |
| 2 | df2 | 0.087448 | 1470 |
| 3 | df3 | -0.024020 | 1108 |
| 4 | df4 | -0.020079 | 1340 |
| 5 | df5 | -0.052725 | 862 |
| 6 | df6 | 0.065738 | 810 |
| 7 | df7 | -0.056386 | 783 |
| 8 | df8 | 0.083790 | 389 |
| 9 | df9 | -0.020267 | 484 |
from sklearn import preprocessing
x = np.array(result.iloc[:,1]) #returns a numpy array
min_max_scaler = preprocessing.MinMaxScaler()
x_scaled = min_max_scaler.fit_transform(x.reshape(10,1))
result['pq_normal'] = x_scaled
x = np.array(result.iloc[:,2]) #returns a numpy array
x_scaled = min_max_scaler.fit_transform(x.reshape(10,1))
result['rows_normal'] = x_scaled
print(result)
cluster pricexquantity rows pq_normal rows_normal 0 df0 -0.015045 963 0.287420 0.530990 1 df1 -0.024412 685 0.222299 0.273821 2 df2 0.087448 1470 1.000000 1.000000 3 df3 -0.024020 1108 0.225026 0.665125 4 df4 -0.020079 1340 0.252422 0.879741 5 df5 -0.052725 862 0.025456 0.437558 6 df6 0.065738 810 0.849062 0.389454 7 df7 -0.056386 783 0.000000 0.364477 8 df8 0.083790 389 0.974570 0.000000 9 df9 -0.020267 484 0.251117 0.087882
def Woof(result_df, input_df, train_df):
input_df = pd.DataFrame(input_df)
df = pd.concat([train_df, input_df], axis = 0)
labels = hierarchical_cluster.fit_predict(df)
n = len(input_df)
new_data_cluster = labels[n-1]
return result_df.iloc[new_data_cluster][3]
Woof(result, test_df, df_Fel_onehot)
0.0
row1 = np.array(df_Fel_onehot.iloc[2,:])
test_df = pd.DataFrame(row1.reshape(-1, len(row1)))
test_df
test_df.columns = df_Fel_onehot.columns
df = pd.concat([df_Fel_onehot, test_df])
df
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.0 | 0.490374 | 1.0 | 83711.0 | 43.4599 | -116.2440 | 0.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 |
| 1 | 1.0 | -1.380585 | 1.0 | 27710.0 | 36.0512 | -78.8577 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| 2 | 0.0 | -1.245769 | 1.0 | 85099.0 | 33.2765 | -112.1872 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| 3 | 0.0 | 2.004318 | 1.0 | 214.0 | 43.0059 | -71.0132 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 |
| 4 | 0.0 | -0.699510 | 1.0 | 60624.0 | 41.8804 | -87.7223 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 8890 | 0.0 | 0.747524 | 1.0 | 47306.0 | 40.2023 | -85.4082 | 1.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 8891 | 0.0 | -1.150398 | 2.0 | 75251.0 | 32.9189 | -96.7751 | 1.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 8892 | 0.0 | 1.738678 | 1.0 | 6140.0 | 41.7918 | -72.7188 | 1.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| 8893 | 0.0 | 0.205261 | 1.0 | 8104.0 | 39.9186 | -75.1078 | 1.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
| 0 | 0.0 | -1.245769 | 1.0 | 85099.0 | 33.2765 | -112.1872 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
8895 rows × 1044 columns
test_df.columns = df_Fel_onehot.columns
test_df
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1.0 | -1.380585 | 1.0 | 27710.0 | 36.0512 | -78.8577 | 1.0 | 1.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 |
1 rows × 1044 columns
test_df
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0.490374 | 1 | 83711 | 43.4599 | -116.2440 | 0 | 1 | 0 | 0 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | -1.380585 | 1 | 27710 | 36.0512 | -78.8577 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 2 | 0 | -1.245769 | 1 | 85099 | 33.2765 | -112.1872 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 3 | 0 | 2.004318 | 1 | 214 | 43.0059 | -71.0132 | 1 | 1 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 4 | 0 | -0.699510 | 1 | 60624 | 41.8804 | -87.7223 | 1 | 1 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 8889 | 0 | -0.699510 | 2 | 98008 | 47.6115 | -122.1162 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8890 | 0 | 0.747524 | 1 | 47306 | 40.2023 | -85.4082 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 8891 | 0 | -1.150398 | 2 | 75251 | 32.9189 | -96.7751 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
| 8892 | 0 | 1.738678 | 1 | 6140 | 41.7918 | -72.7188 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 8893 | 0 | 0.205261 | 1 | 8104 | 39.9186 | -75.1078 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
8894 rows × 1044 columns
df8
| sns | price | qty | zip | lat | lng | prime | sale_date_2021-10-01 | sale_date_2021-10-02 | sale_date_2021-10-03 | ... | income_$40,000 - $59,999 | income_$60,000 - $79,999 | income_$80,000 - $99,999 | income_Less than $20,000 | age_18-24 | age_25-34 | age_35-44 | age_45-54 | age_55-64 | age_65+ | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 19 | 0 | -1.350127 | 1 | 70116 | 29.9686 | -90.0646 | 1 | 0 | 1 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 29 | 0 | -0.770414 | 1 | 68517 | 40.9317 | -96.6045 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 30 | 0 | -1.007592 | 1 | 66160 | 39.0966 | -94.7495 | 1 | 0 | 0 | 1 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 41 | 0 | 3.381947 | 1 | 70179 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 71 | 0 | 0.260186 | 1 | 70165 | 30.0330 | -89.8826 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 8798 | 0 | -0.559700 | 1 | 66225 | 38.8999 | -94.8320 | 0 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 8799 | 0 | -0.691022 | 2 | 71151 | 32.6076 | -93.7526 | 1 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8860 | 0 | 0.939763 | 1 | 68197 | 41.2490 | -96.0274 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 8864 | 0 | -1.008091 | 1 | 68164 | 41.2955 | -96.1008 | 1 | 0 | 0 | 0 | ... | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 8879 | 0 | 0.097407 | 1 | 66105 | 39.0850 | -94.6356 | 1 | 0 | 0 | 0 | ... | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
389 rows × 1044 columns
columns_brand = ['product_brand_Alpha',
'product_brand_Arf',
'product_brand_Astro',
'product_brand_Beam',
'product_brand_Beethoven',
'product_brand_Bezt',
'product_brand_Bones',
'product_brand_Choice',
'product_brand_Flora',
'product_brand_Garland',
'product_brand_Hanover',
'product_brand_Health One',
'product_brand_Hearth',
'product_brand_K99',
'product_brand_Kastle',
'product_brand_King',
'product_brand_Omaha',
'product_brand_Paws',
'product_brand_Perro',
'product_brand_Playtime',
'product_brand_Rivera',
'product_brand_Romero',
'product_brand_Ruby',
'product_brand_Seattle Gourmet',
'product_brand_Top']
max_column = ''
max_count = -1
for column in columns_brand:
count = df2[column].sum()/len(df2)
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
max_column = product_brand_Alpha, count = 0.32789115646258504
columns_brand = ['product_brand_Alpha',
'product_brand_Arf',
'product_brand_Astro',
'product_brand_Beam',
'product_brand_Beethoven',
'product_brand_Bezt',
'product_brand_Bones',
'product_brand_Choice',
'product_brand_Flora',
'product_brand_Garland',
'product_brand_Hanover',
'product_brand_Health One',
'product_brand_Hearth',
'product_brand_K99',
'product_brand_Kastle',
'product_brand_King',
'product_brand_Omaha',
'product_brand_Paws',
'product_brand_Perro',
'product_brand_Playtime',
'product_brand_Rivera',
'product_brand_Romero',
'product_brand_Ruby',
'product_brand_Seattle Gourmet',
'product_brand_Top']
max_column = ''
max_count = -1
worst = []
for column in columns_brand:
count = df7[column].sum()/len(df7)
worst.append(count)
if count > max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
worst
max_column = product_brand_Alpha, count = 0.30140485312899107
[0.30140485312899107, 0.12643678160919541, 0.01277139208173691, 0.020434227330779056, 0.006385696040868455, 0.1724137931034483, 0.0038314176245210726, 0.04469987228607918, 0.005108556832694764, 0.03065134099616858, 0.007662835249042145, 0.08045977011494253, 0.005108556832694764, 0.006385696040868455, 0.006385696040868455, 0.024265644955300127, 0.005108556832694764, 0.01532567049808429, 0.011494252873563218, 0.001277139208173691, 0.006385696040868455, 0.008939974457215836, 0.019157088122605363, 0.04469987228607918, 0.033205619412515965]
columns_brand = ['product_brand_Alpha',
'product_brand_Arf',
'product_brand_Astro',
'product_brand_Beam',
'product_brand_Beethoven',
'product_brand_Bezt',
'product_brand_Bones',
'product_brand_Choice',
'product_brand_Flora',
'product_brand_Garland',
'product_brand_Hanover',
'product_brand_Health One',
'product_brand_Hearth',
'product_brand_K99',
'product_brand_Kastle',
'product_brand_King',
'product_brand_Omaha',
'product_brand_Paws',
'product_brand_Perro',
'product_brand_Playtime',
'product_brand_Rivera',
'product_brand_Romero',
'product_brand_Ruby',
'product_brand_Seattle Gourmet',
'product_brand_Top']
max_column = ''
max_count = 1
best = []
for column in columns_brand:
count = df2[column].sum()/len(df2)
best.append(count)
if count < max_count:
max_count = count
max_column = column
print('max_column = {}, count = {}'.format(max_column, max_count))
worst
max_column = product_brand_Kastle, count = 0.004761904761904762
[0.30140485312899107, 0.12643678160919541, 0.01277139208173691, 0.020434227330779056, 0.006385696040868455, 0.1724137931034483, 0.0038314176245210726, 0.04469987228607918, 0.005108556832694764, 0.03065134099616858, 0.007662835249042145, 0.08045977011494253, 0.005108556832694764, 0.006385696040868455, 0.006385696040868455, 0.024265644955300127, 0.005108556832694764, 0.01532567049808429, 0.011494252873563218, 0.001277139208173691, 0.006385696040868455, 0.008939974457215836, 0.019157088122605363, 0.04469987228607918, 0.033205619412515965]