<jupyter_start><jupyter_text>Crear un subconjunto de datos<jupyter_code>account_length = data["Account Length"]
account_length
type(account_length) #Objeto tipo series
subset = data[["Account Length", "Phone", "Eve Charge", "Day Calls"]]
subset.head() #Objeto dataframe
desired_columns = ["Account Length", "Phone", "Eve Charge", "Day Calls"]
subset = data[desired_columns]
subset.head()
all_columns = data.columns.values.tolist()
all_columns
sublist = [x for x in all_columns if x not in desired_columns] #Columnas que no están en desired_list
sublist
data[10:35]
data[:8]
data[3300:]
# Usuarios con Total Mins > 500
data1 = data[data["Day Mins"] > 300]
data1.shape
# Usuarios de Nueva York (State = NY)
data2 = data[data["State"] == "NY"]
data2.shape
# Ejemplo con dos condiciones a la vez
# Ejemplo AND -> &
data3 = data[(data["Day Mins"] > 300) & (data["State"] == "NY")]
data3.shape
# Ejemplo con dos condiciones a la vez
# Ejemplo OR -> &
data4 = data[(data["Day Mins"] > 300) | (data["State"] == "NY")]
data4.shape
data5 = data[data["Day Calls"] < data["Night Calls"]]
data5.shape
data6 = data[data["Day Mins"] < data["Night Mins"]]
data6.shape
# Minutos de dia, de noche y longitud de la cuenta de los primeros 50 individuos
subset_first_50 = data[["Day Mins", "Night Mins", "Account Length"]][:50]
subset_first_50.shape
data.iloc[:10, 3:6] #Primero filas (10) y luego columnas (3-6)
data.iloc[:, 3:6] #Todas las filas para las columnas de 3 a 6
data.iloc[3:6,:] #Todas las columnas para filas de la 3 a la 6
data.iloc[2:9, [1,2,4,6,20]]
data.loc[2:9, ["Day Mins", "Night Mins"]] #Para indexado basado en etiquetas<jupyter_output><empty_output><jupyter_text>Crear  nuevas columnas<jupyter_code>data["Total Mins"] = data["Day Mins"] + data["Night Mins"] + data["Eve Mins"]
data[["Day Mins", "Night Mins", "Eve Mins", "Total Mins"]]
data["Total Calls"] = data["Day Calls"] + data["Night Calls"] + data["Eve Calls"]
data[["Day Calls", "Night Calls", "Eve Calls", "Total Calls"]]<jupyter_output><empty_output><jupyter_text>Generación de números aleatorios<jupyter_code>import numpy as np
# Generar aleatorio entre 1 y 100
np.random.randint(1,100)
#Lo más habitual es que sea un random entre 0 y 1
np.random.rand()
#Lista de n números aleatorios en el intervalo [a, b]
def randint_list (n, a, b):
    x = []
    for i in range(n):
        x.append(np.random.randint(a, b))
    return x
randint_list(20, 1, 50)
#Ya hay método que hace esto por nosotros con la función range
import random
random.randrange(0, 1000,5)<jupyter_output><empty_output><jupyter_text>Shuffling<jupyter_code>a = np.arange(100) #Array de objetos desde el 0 al 99
a
np.random.shuffle(a) #Mezclamos el array a
a
#Selección al azar
np.random.choice(data.columns.values.tolist())<jupyter_output><empty_output><jupyter_text>Seed (Semilla)<jupyter_code>np.random.seed(2018)
for i in range(5):
    print(np.random.rand())<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14799588900308325, 'fraction_numerical': 0.03391572456320658, 'mean_word_length': 5.806526806526806, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '133124', 'license': 'MIT', 'n_tokens_mistral': 1186, 'n_tokens_neox': 1116, 'n_words': 318, 'path': 'scripts/T2 - 1 - Data Cleaning - Data Wrangling.ipynb', 'repo_name': 'franciscovalde6/python-ml-course', 'size': '2919'}