Skip to content
Palabras claves Amazon
exitimport pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
amazon = pd.read_csv(r'amazon.csv')
# Convertir la columna 'Organic Rank' a tipo numérico
amazon['Organic Rank'] = pd.to_numeric(amazon['Organic Rank'], errors='coerce')
amazon['Amazon Rec. Rank'] = pd.to_numeric(amazon['Amazon Rec. Rank'], errors='coerce')
amazon['Sponsored Rank'] = pd.to_numeric(amazon['Sponsored Rank'], errors='coerce')
# Filtrar las filas con Organic Rank válido y diferente de 0
numeric_organic_rank_rows = amazon[(amazon['Organic Rank'].notnull()) & (amazon['Organic Rank'] != 0)]
numeric_Amazon_Rec_Rank_rows = amazon[(amazon['Amazon Rec. Rank'].notnull()) & (amazon['Search Volume'].notnull()) & (amazon['Amazon Rec. Rank'] != 0) & (amazon['Search Volume']!=0)]
numeric_Sponsored_Rank_rows = amazon[(amazon['Sponsored Rank'].notnull()) & (amazon['Search Volume'].notnull()) & (amazon['Sponsored Rank'] != 0) & (amazon['Search Volume'] != 0)]
numeric_Search_volume_rows = amazon[(amazon['Search Volume'].notnull()) & (amazon['Search Volume'] != 0)]
# Obtener las 10 filas con el mejor Organic Rank
top_organic_rank_rows = numeric_organic_rank_rows.nsmallest(10, 'Organic Rank')
top_Amazon_Rec_Rank_rows = numeric_Amazon_Rec_Rank_rows.nsmallest(10, 'Amazon Rec. Rank')
top_Sponsored_Rank_rows = numeric_Sponsored_Rank_rows.nsmallest(10, 'Sponsored Rank')
# Obtener las 10 filas con el mejor Search Volume
top_search_volume_rows = numeric_Search_volume_rows.nlargest(10, 'Search Volume')
top_Search_volume_rows = numeric_Amazon_Rec_Rank_rows.nsmallest(10, 'Amazon Rec. Rank')
# Imprimir los resultados
print("Top 10 Organic Rank:")
print(top_organic_rank_rows[['Keyword Phrase', 'Organic Rank', 'Search Volume']])
print(top_Amazon_Rec_Rank_rows[['Keyword Phrase', 'Amazon Rec. Rank', 'Search Volume']])
print(top_Sponsored_Rank_rows[['Keyword Phrase', 'Sponsored Rank', 'Search Volume']])
print("\nTop 10 Search Volume:")
print(top_search_volume_rows[['Keyword Phrase', 'Search Volume']])
print(top_Search_volume_rows[['Keyword Phrase', 'Search Volume', 'Amazon Rec. Rank']])
# Gráfico de barras para Organic Rank
plt.figure(figsize=(10, 6))
plt.bar(top_organic_rank_rows['Keyword Phrase'], top_organic_rank_rows['Organic Rank'])
plt.xlabel('Keyword Phrase')
plt.ylabel('Organic Rank')
plt.title('Top 10 Organic Rank')
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()
# Gráfico de barras para Search Volume
plt.figure(figsize=(10, 6))
plt.bar(top_search_volume_rows['Keyword Phrase'], top_search_volume_rows['Search Volume'])
plt.xlabel('Keyword Phrase')
plt.ylabel('Search Volume')
plt.title('Top 10 Search Volume')
plt.xticks(rotation=90)
plt.tight_layout()
plt.show()
# Crear el histograma de calor (Organic Rank vs Keyword Phrase)
plt.figure(figsize=(12, 6))
sns.heatmap(top_organic_rank_rows[['Organic Rank', 'Keyword Phrase']].set_index('Keyword Phrase'), annot=True, fmt=".0f", cmap='YlGnBu', cbar=True)
plt.xlabel('Organic Rank')
plt.ylabel('Keyword Phrase')
plt.title('Histograma de Calor - Organic Rank vs Keyword Phrase')
plt.tight_layout()
plt.show()
# Crear el histograma de calor (Search Volume vs Keyword Phrase)
plt.figure(figsize=(12, 6))
sns.heatmap(top_search_volume_rows[['Search Volume', 'Keyword Phrase']].set_index('Keyword Phrase'), annot=True, fmt=".0f", cmap='YlGnBu', cbar=True)
plt.xlabel('Search Volume')
plt.ylabel('Keyword Phrase')
plt.title('Histograma de Calor - Search Volume vs Keyword Phrase')
plt.tight_layout()
plt.show()