Constellation Knowledge Network - Preguntas y respuestas sobre la interpretación de los sueños - Cómo usar Python para procesar datos

Cómo usar Python para procesar datos

pandas es la biblioteca elegida para el resto de este libro. pandas puede satisfacer las siguientes necesidades:

Estructuras de datos con alineación de datos automática o explícita por eje. Esto evita muchos errores comunes causados ​​por datos desalineados y datos provenientes de diferentes fuentes de datos (indexados de manera diferente). .

Funciones integradas de series de tiempo

Estructuras de datos que pueden manejar tanto datos de series de tiempo como datos que no son de series de tiempo

Operaciones matemáticas y reducción (como para ciertos Se pueden realizar sumas en múltiples ejes en función de diferentes metadatos (números de eje)

Manejo flexible de datos faltantes

Fusiones y otras relaciones que aparecen en bases de datos comunes (por ejemplo, basadas en SQL) Operaciones de tipo

1. Introducción a la estructura de datos de pandas

Dos estructuras de datos: Series y DataFrame. Series es un objeto similar a una matriz NumPy. Consta de un conjunto de datos (varios tipos de datos NumPy) y un conjunto de etiquetas de datos (es decir, índices) relacionados con ellos. Puede utilizar índice y valores para especificar el índice y el valor respectivamente. Si no se especifica ningún índice, se crean automáticamente índices de 0 a N-1. #-*- codificación: utf-8 -*-import numpy as npimport pandas as pdffrom pandas import Series, DataFrame#Series puede establecer el índice, un poco como un diccionario, índice con índice obj = Series(, index=['a' ,' b', 'c'])#print obj['a']#En otras palabras, puedes usar un diccionario para crear Seriesdic directamente = dict(key = ['a', 'b', 'c'] , value = )

dic = Series(dic)#Tenga en cuenta que puede usar una cadena para actualizar el valor clave key1 =, index = ['a', 'b', 'c', ' e']) #print dic1 dic2 #nombre del atributo, puedes nombrarlo dic1.name = 's1'dic1.index.name = 'key1' #El índice de la serie se puede modificar en su lugar dic1.index = ['x' , 'y', 'z', 'w ']

DataFrame es una estructura tabular que contiene un conjunto de columnas ordenadas, cada columna puede ser de un tipo de datos diferente. Hay índices de filas y columnas, y se puede ver como un diccionario compuesto por Series (usando diferentes índices). Al igual que otras estructuras de datos similares (como data.frame en R), las operaciones orientadas a filas y columnas de DataFrame están básicamente equilibradas. De hecho, los datos en DataFrame se almacenan en uno o más bloques bidimensionales (no listas, diccionarios u otros).

#-*- codificación: utf-8 -*-import numpy as npimport pandas as pdffrom pandas import Series, DataFrame #Construir DataFrame puede pasar directamente una lista de longitudes iguales o un diccionario compuesto por series #Longitudes desiguales producirán errores data = { 'a':, 'c':, 'b':

}#Tenga en cuenta que las columnas se ordenan según los nombres de las columnas frame = DataFrame(data)#print frame#Después de especificar la columna, se ordenará de acuerdo con el marco de clasificación especificado = DataFrame(datos, columnas =, índice =, índice = índice1) imprimir obj2.index es índice1# Además de verse como una matriz, Índice también funciona como una impresión de colección de tamaño fijo 'Ohio' en frame3.columnsprint 2003 en frame3.index

Index en pandas es una clase, el objeto Index principal en pandas (cuándo usarlo).

Los siguientes son los métodos y propiedades de Index. Vale la pena señalar que el índice no es una matriz.

2. Funciones básicas

A continuación se presentan los métodos básicos de procesamiento de datos Series y DataFrame.

El primero es el índice: #-*- codificación: utf-8 -*-import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom pandas import Series, DataFrame#Series tiene una función de reindexación que puede reorganizar el índice para que los elementos ocurren en orden Cambiar obj = Series(, index=)#method = fill, lo que significa que el valor se llena hacia adelante obj3 = obj2.reindex(range(6), método='ffill')#print obj3#La reindexación de DataFrame puede modificar filas y columnas , o cambiar ambos frame = DataFrame(np.arange(9).reshape((3, 3)), index = ['a', 'c', 'd'], columns = ['Ohio', 'Texas' , 'California']) # Simplemente pase un número de columna para reindexar la fila, porque... el parámetro de fila del marco se llama índice... (Supuse esto) frame2 = frame.reindex(['a',' b', 'c', 'd']) #print frame2 # Cuando se pasa un índice que no estaba disponible originalmente, por supuesto se devuelve un NaN vacío #frame3 = frame.reindex(['e']) #print frame3states = ['Texas', 'Utah', 'California'] #Esta es una reorganización de filas y columnas #Nota: El método aquí es completar el índice, es decir, la fila, y la columna no se puede completar (independientemente de la posición del método) frame4 = frame.reindex(index = ['a', 'b', 'c', 'd'], columnas = estados, método = 'ffill')#print frame4#Usando la etiqueta función de índice de ix, la reindexación se vuelve más concisa print frame.ix[['a', 'd', 'c', 'b'], States]

Descartar elementos en el eje especificado #-* - codificación: utf-8 -* -import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom pandas import Series, la función DataFrame#drop puede eliminar valores de columnas y filas en el eje obj = Series(np.arange(3. ), index = ['a',' b', 'c'])#La serie original no elimina obj.drop('b')#print obj#Tenga en cuenta que las filas se pueden eliminar a voluntad y las columnas deben eliminarse add axis = 1print frame.drop(['a']) print frame.drop(['Ohio'], axis = 1)

Lo siguiente trata sobre indexación, selección y filtrado #-*- codificación : utf-8 -*-importar numpy como npimport pandas como pdimport matplotlib. pyplot como pltfrom pandas import Series, DataFrame

obj = Series(, index=['a', 'b', 'c' , 'd'])

frame = DataFrame (np.arange(9).resh

mono((3, 3)), índice = ['a', 'c', 'd'], columnas = ['Ohio', 'Texas', 'California']) #Corte e indexación de series #imprimir obj[ obj lt; 2]#Nota: Cortar usando etiquetas es diferente del corte de Python, ambos extremos están incluidos (tiene sentido) print obj['b':'c']#Para DataFrame, las columnas se pueden nombrar directamente print frame ['Ohio ']#Caso especial: mediante el corte y el índice bool, se obtienen filas (tiene sentido) print frame[:2]print frame[frame['Ohio'] != 0]#El siguiente método es para frame Aplicable a todos los elementos, no filas ni columnas, lo siguiente es numpy.ndarray tipo print frame[frame lt; 5], type(frame[frame lt; 5])

frame[frame lt; #Para el índice de etiquetas en el DataFrame, use ix para imprimir frame.ix[['a', 'd'], ['Ohio', 'Texas']] print frame.ix[2] #Tenga en cuenta que la línea predeterminada se toma aquí #Tenga en cuenta que la línea predeterminada se toma debajo print frame.ix[frame.Ohio gt 0]#Tenga en cuenta que la coma a continuación va seguida de la etiqueta de columna print frame.ix[frame.Ohio gt; ]

Las siguientes son opciones de índice de uso común:

Operaciones aritméticas y alineación de datos #pandas tiene una función importante que puede alinear automáticamente según el índice algunos de los valores. ​que no se superponen al índice son NaNs1 = Series( ,['a','b','c'])

s2 = Series(,,'a':})print frame.sort_index (by = )print obj.rank()#Y la función argsort en numpy es bastante extraña. Devuelve los subíndices correspondientes al orden de los valores después de ordenar los datos. Los subíndices comienzan desde 0. print np.argsort(obj. ) #El resultado de la impresión es: 1, 5, 4, 3, 6, 0, 2 De acuerdo con esta secuencia de subíndices, puede obtener el valor de pequeño a grande, consulte a continuación print obj[np.argsort(obj)]#rank La función tiene una opción de método, que se utiliza para especificar el método de subíndice print obj.rank (method = 'first', ascending=False)print obj.rank(method = 'max', ascending=False)print obj.rank(method = 'min', ascending=False) #Para DataFrame, la función de clasificación por defecto clasifica una columna y devuelve las coordenadas print frame.rank() print frame.rank(axis = 1)

Índice del eje con valores duplicados #-*- codificación: utf-8 -*-import numpy as npimport pandas as pdimport matplotlib.pyplot as pltfrom pandas import Series, DataFrame#Aunque muchas funciones de pandas (como reindexar) requieren etiquetas únicas, son no obligatorio obj = Serie(rango(5), índice = lista('aabbc' ))imprimir

obj#Si el índice es único, use is_unique para ver si es único. print obj.index.is_unique#Para el índice de valores repetidos, si se selecciona, se devuelve una Serie y el índice único devuelve un escalar print obj[. 'a']#Lo mismo ocurre con DataFrame. df = DataFrame (np.random.randn(4, 3), index = list('aabb'))print dfprint df.ix['b']#### #Al importar datos usted mismo, puede realizar la unicidad del índice antes del procesamiento de datos. Espere, tenga cuidado de no hacer esto al crear el DataFrame usted mismo

3. Resuma y calcule estadísticas descriptivas #-*- codificación: utf-8 -. * -import numpy as npimport osimport pandas as pdffrom pandas import Series, DataFrameimport matplotlib.pyplot as pltimport time#los objetos pandas tienen un conjunto común de métodos matemáticos y estadísticos, la mayoría de los cuales son estadísticas parsimoniosas, utilizadas para extraer un valor de una serie. o? Extraer una columna o fila de una serie de DataFrame#Nota: en comparación con las matrices NumPy, estas funciones se crean sin datos faltantes, es decir: estas funciones ignoran automáticamente los valores faltantes.

df = DataFrame([[1.4,np.nan],[7.1,-4.5],[np.nan,np.nan],[0.75,-1.3]], índice = lista('abcd'), columnas=[ 'uno', 'dos'])print df.sum()print df.sum(axis = 1)#Las siguientes son algunas funciones, idxmin e idmax devuelven el índice mínimo o máximo print df.idxmin()print df .idxmin (eje = 1) #Acerca de la función acumulativa print df.cumsum()#función de descripción, que es básicamente la misma que la función de descripción en lenguaje R print df.describe()#Para datos no numéricos, mire el siguiente resultado obj = Series(['c', 'a', 'a', 'b', 'd'] * 4)print obj.describe()'''El resultado es:

cuenta 20

único 4

top a

freq 8

Entre ellos, freq se refiere a la frecuencia más alta de letras'''< / p>

#-*- codificación: utf-8 -*-import numpy as npimport osimport pandas as pdffrom pandas import Series, DataFrameimport matplotlib.pyplot as pltimport time#Echemos un vistazo a la función cummin#Nota: La función cummin aquí es el valor mínimo hasta ahora, no el valor mínimo después del marco de suma = DataFrame([,,[-10,11,12,-13]], index = list('abc'), columns = [' uno ','dos','tres','cuatro'])imprimir marco.cummin()imprimir marco

gt;gt;gt; ¿uno dos tres? > a 1 2? 3 4

b 1 2? 3 4

c? -10 2? 3? > a 1 2? 3 4

b 5 6? 7 8

c? -10? 11 12?

Coeficiente de correlación y covarianza

p> p>

Algún resumen

上篇: El emperador es el ejecutor supremo del poder. ¿Cuántos emperadores llamados Li hubo en la historia? 下篇: Nombres adecuados para salones de belleza en Zhuangzi
Artículos populares