Declarar un DataFrame (vacio)
import pandas as pd data = pd.DataFrame(columns=('order', 'family', 'num', 'sequence'))
Añadir datos al DataFrame
data.loc[len(data)]=['Tymovirales','Alphaflexiviridae',1,'AACGTTAAUGGUGAA'] data.loc[len(data)]=['Tymovirales','Alphaflexiviridae',2,'AACGTTAAUGGUGAA']
Declarar un DataFrame (con datos)
import pandas as pd clases = ["clase 1"] * 5 + ["clase 2"] * 5 tipos = ["tipo 1"] * 2 + ["tipo 2"] * 3 + ["tipo 3"] * 2 + ["tipo 4"] * 3 valores = [0,1,2,3,4] + [5,6,7,8,9] df = pd.DataFrame({"clase": clases, "tipo": tipos, "valor": valores})
Mostrar el Dataframe completo
print(df) clase tipo valor 0 clase 1 tipo 1 0 1 clase 1 tipo 1 1 2 clase 1 tipo 2 2 3 clase 1 tipo 2 3 4 clase 1 tipo 2 4 5 clase 2 tipo 3 5 6 clase 2 tipo 3 6 7 clase 2 tipo 4 7 8 clase 2 tipo 4 8 9 clase 2 tipo 4 9
Mostrar los 5 primeros elementos del Dataframe
print(df[:5]) clase tipo valor 0 clase 1 tipo 1 0 1 clase 1 tipo 1 1 2 clase 1 tipo 2 2 3 clase 1 tipo 2 3 4 clase 1 tipo 2 4
Acceder al primer registro
print(df.loc[1]) clase clase 1 tipo tipo 1 valor 1 Name: 1, dtype: object
Acceder al primer registro (otra forma)
print(df.iloc[1]) clase clase 1 tipo tipo 1 valor 1 Name: 1, dtype: object
Seleccionar la columna clase
print(df['clase']) 0 clase 1 1 clase 1 2 clase 1 3 clase 1 4 clase 1 5 clase 2 6 clase 2 7 clase 2 8 clase 2 9 clase 2 Name: clase, dtype: object
Selecionar dos columnas
print(df[['clase','tipo']]) clase tipo 0 clase 1 tipo 1 1 clase 1 tipo 1 2 clase 1 tipo 2 3 clase 1 tipo 2 4 clase 1 tipo 2 5 clase 2 tipo 3 6 clase 2 tipo 3 7 clase 2 tipo 4 8 clase 2 tipo 4 9 clase 2 tipo 4
Calcula la media de los valores que puede calcularse
print(df.mean()) valor 4.5 dtype: float64
Calcula la suma de los valores que puede calcularse
print(df.groupby('clase').sum()) valor clase clase 1 10 clase 2 35
Cuenta lo valores contables ignorando los nulos
print(df.groupby('clase').count()) tipo valor clase clase 1 5 5 clase 2 5 5
Transformar a lista una columna del dataframe
print(df['clase'].tolist()) ['clase 1', 'clase 1', 'clase 1', 'clase 1', 'clase 1', 'clase 2', 'clase 2', 'clase 2', 'clase 2', 'clase 2']
Ordenar valores por clase y tipo
print(df.sort_values(by=['clase','tipo'], ascending=[True,False]))
Borrar duplicados del data frame
df.loc[len(df)]=['clase 1','tipo 1',1] df.loc[len(df)]=['clase 1','tipo 1',1] print(df) print(df.drop_duplicates())
Borrar duplicados de una columna
print(df['clase'].drop_duplicates().values.tolist())
Reemplazar subcadena para todos los campos de una columna
df['clase'] = df['clase'].replace({' ': ''}, regex=True) print(df) clase tipo valor 0 clase1 tipo 1 0 1 clase1 tipo 1 1 2 clase1 tipo 2 2 3 clase1 tipo 2 3 4 clase1 tipo 2 4 5 clase2 tipo 3 5 6 clase2 tipo 3 6 7 clase2 tipo 4 7 8 clase2 tipo 4 8 9 clase2 tipo 4 9 10 clase1 tipo 1 1 11 clase1 tipo 1 1
Reemplazar subcadena para todos los campos del dataframe
df = df.replace({' ': ''}, regex=True) print(df) clase tipo valor 0 clase1 tipo1 0 1 clase1 tipo1 1 2 clase1 tipo2 2 3 clase1 tipo2 3 4 clase1 tipo2 4 5 clase2 tipo3 5 6 clase2 tipo3 6 7 clase2 tipo4 7 8 clase2 tipo4 8 9 clase2 tipo4 9 10 clase1 tipo1 1 11 clase1 tipo1 1
Filtrar por valores de una columna
df2 = df[df['tipo'] == 'tipo1'] print(df2) clase tipo valor 0 clase1 tipo1 0 1 clase1 tipo1 1 10 clase1 tipo1 1 11 clase1 tipo1 1
Filtrar por columnas concretas del dataframe
df2 = df.filter(items=['clase', 'valor']) print(df2) clase valor 0 clase1 0 1 clase1 1 2 clase1 2 3 clase1 3 4 clase1 4 5 clase2 5 6 clase2 6 7 clase2 7 8 clase2 8 9 clase2 9 10 clase1 1 11 clase1 1
Filtar por valores de una columna que pertenezcan a un conjunto de datos
df2 = df[df['valor'].isin([3,6])] print(df2) clase tipo valor 3 clase1 tipo2 3 6 clase2 tipo3 6
Filtar por valores que cumpla una condición
df2 = df[df['valor'] > 6] print(df2) clase tipo valor 7 clase2 tipo4 7 8 clase2 tipo4 8 9 clase2 tipo4 9
Unión de dos data frames por columna
df1 = pd.DataFrame({'A1': ['A0', 'A1', 'A2', 'A3'], 'B1': ['B11', 'B12', 'B13', 'B14'], 'C1': ['C11', 'C12', 'C13', 'C14']}) df2 = pd.DataFrame({'A2': ['A0', 'A2', 'A2', 'A4'], 'B2': ['B21', 'B22', 'B23', 'B24'], 'C2': ['C21', 'C22', 'C23', 'C24']}) result = df1.merge(df2, left_on='A1', right_on='A2', how='outer') print(result) A1 B1 C1 A2 B2 C2 0 A0 B11 C11 A0 B21 C21 1 A1 B12 C12 NaN NaN NaN 2 A2 B13 C13 A2 B22 C22 3 A2 B13 C13 A2 B23 C23 4 A3 B14 C14 NaN NaN NaN 5 NaN NaN NaN A4 B24 C24
necesito una función para extraer el nombre de la fila y columna que contienen el dato mayor de un data frame.
Se me ocurre que que ordener de mayor a menor y te quedes con la primera usando la función list(df.columns.values)
Estimados todos
Con la sentencia «tabla[«fi»].max()», consigo el valor máximo de un dataframe. Mi problema es, ¿cómo puedo identificar el número de línea, o el índice correspondiente que identifica la fila en la que se encuentra ese valor en el df?.
Agradeceré su ayuda.
Hola como obtienes la media de una columna del dataframe por ejemplo de la columna valor y si tiene NaN incluido, gracias
Hola necesito cantr los valores ==»manzanas» de una columna «Productos» de un archivo de excel s, pero me dice que el objeto «productos» no esta , pero cuando leo el data frame si aparece esta columna con este nombre