<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 pandas
Step1:  Series es similar a un arreglo de numpy(ndarray) con la excepción de que estos poseen un axis labels. 
Usaremos 's' para referinos a Series
Forma básica para crear un arreglo
s = pd.Series(data, index=label)
Donde data puede ser un ndarray, dictionario, un escalar, etc.
Step2:  Ejercicio 1
Step3:  Data Frames se define como arreglo bidimensional etiquetadas, cada columna es una Serie.
<ASSISTANT_TASK:>
Python Code:
import pandas as pd
import numpy as np
#importar los modulos pandas y numpy con los alias convencionales
from pandas import Series, DataFrame
Explanation: pandas
End of explanation
#Crear una serie desde un ndarray
s = pd.Series(np.arange(0,5), index=['a', 'b', 'c', 'd', 'e'])
s
s.index
type(s)
s0 = Series(np.random.random(10)) #crea una serie con 10 valores aleatorios
s0 
#Crear serie desde un dictionario
d = {'a':100,'b':124,'c':700,'d':430,'e':400}
s1 = pd.Series(d)
s1
#Crear serie desde un valor escalar
s2 = pd.Series(23., s1.index)
s2
# Acceder a los valores de la serie
print(s2.index) 
print(s2.values)
Explanation: Series es similar a un arreglo de numpy(ndarray) con la excepción de que estos poseen un axis labels. 
Usaremos 's' para referinos a Series
Forma básica para crear un arreglo
s = pd.Series(data, index=label)
Donde data puede ser un ndarray, dictionario, un escalar, etc.
End of explanation
lpaises=['Venezuela','República Dominicana','India','Guatemala','Alemania','Arabia Saudita','Argentina','Francia','Filipinas','Indonesia','Haití','México','Nicaragua']
lpoblacion=[31108.08,10528.39,1311050.53,16342.90,81413.15,31540.37,43416.75,66808.38,100699.40,257563.82,10711.07,127017.22,6082.03]
seriepp=Series(lpoblacion,lpaises)
seriepp['India'] #seleccionar el indice India
#Ver cuales de los paises seleccionado superan los 50 millones de personas
seriepp[seriepp>50000]
seried = seriepp.to_dict() # convertir en un diccionario
seried
seriepp.name = 'Población algunos paises'
seriepp['India']
seriepp[['India','Aruba','Venezuela']] #Seleccionar desde una lista, en caso de no estar el elemento NaN 
'México' in seriepp #Verificar si México esta en la serie
'Estados Unidos' in seriepp  #Verificar si Estados Unidos esta en la serie
seriepp.append(Series({'Ginea':12608.59}))
seriepp=seriepp.append(Series({'Ginea':12608.59})) #Agregar un elemento a una serie
seriepp
seriepp=seriepp.append(Series({'Otro Nación':np.NAN}))
seriepp
seriepp.notnull() # retorna una serie boleana donde identifca los valores no son nulos
Explanation: Ejercicio 1:
Serie con datos del mundo real
Población, total [http://datos.bancomundial.org/indicador/SP.POP.TOTL]
Crear un dos listas, una con nombre de países y la segunda con su población, con estas hacer una serie paises y poblacion,
End of explanation
#Crear un DataFrame desde un dictionario
AntillaMayores = {'ciudad':['Santo Domingo','La Habana','San Juan','Kington','Puerto Principe'],
        'pais':['República Dominicana','Cuba','Puerto Rico','Jaimaica','Haití'],
        'poblacion':[10528.39,11389.56,3474.18,2725.94,10711.07]}
dfAntillasMay = DataFrame(AntillaMayores)
dfAntillasMay
#Crear un DataFram desde multiples listas
#Creando varias listas con datos de paises de antillas menores territorios independient
#fuente de datos: https://es.wikipedia.org/wiki/Antillas_Menores
pais = ['Antigua y Barbuda', 'Barbados', 'Dominica', 'Granada', 'San Cristóbal y Nieve', 'San Vicente y las Granadinas', 'Santa Lucía', 'Trinidad y Tobago']
idiomaOficial = ['Inglés','Inglés','Inglés','Inglés','Inglés','Inglés','Inglés','Inglés']
superficieTerritorial = [443,431,754, 344, 261,389, 616, 5128 ] 
poblacion = [68722  , 279912 , 69278  , 89502  , 38958, 117534, 160145, 1075066]
etiquetas = ['pais','idioma','superficie','población']
listacolumnas = [pais,idiomaOficial,superficieTerritorial,poblacion]
datazipped = list(zip(etiquetas,listacolumnas))
dataantillas = dict(datazipped)
dfantillasmenores = DataFrame(dataantillas)
dfantillasmenores
# Cambiando los nombres de las columnas
# complicarla un poco
dfantillasmenores.rename(columns={'idioma': 'Idioma Oficial','pais':'País','población':'Población','superficie':'Superficie Territorial'},inplace=True)
dfantillasmenores
#Broadcasting o cambio en memoria, permite agregar nuevos datos o agregar columnas
#según se necesite, ejemplo una nueva colunma para asignar la visitas de turistas en el 2017
dfantillasmenores['Turismo 2017(MM)']=1
#De forma automática asignamos 1
dfantillasmenores
dfantillasmenores['Turismo 2017(MM)']=dfantillasmenores['Población']/dfantillasmenores['Superficie Territorial']**3
dfantillasmenores
Explanation: Data Frames se define como arreglo bidimensional etiquetadas, cada columna es una Serie.
End of explanation
<END_TASK>