Pandas fue desarrollado por la necesidad de una forma eficiente de administrar datos financieros en Python. Pandas es una biblioteca que se puede importar a Python para ayudar a manipular y transformar datos numéricos. Wes McKinney comenzó el proyecto en 2008. Pandas ahora es administrado por un grupo de ingenieros y respaldado por la organización sin fines de lucro Numfocus, que asegurará su crecimiento y desarrollo futuro. Esto significa que los pandas serán una biblioteca estable durante muchos años y se puede incluir en sus aplicaciones sin la preocupación de un pequeño proyecto.
Aunque Pandas se desarrolló inicialmente para modelar datos financieros, sus estructuras de datos se pueden utilizar para manipular una variedad de datos numéricos. Pandas tiene una serie de estructuras de datos que están incorporadas y se pueden usar para modelar y manipular fácilmente datos numéricos. Este tutorial cubrirá los pandas Marco de datos Estructura de datos en profundidad.
¿Qué es un marco de datos??
A Marco de datos es una de las principales estructuras de datos en pandas y representa una recopilación de datos en 2-D. Hay muchos objetos análogos a este tipo de estructura de datos 2-D, algunos de los cuales incluyen la hoja de cálculo de Excel Everpopular, una tabla de base de datos o una matriz 2-D encontrada en la mayoría de los lenguajes de programación. A continuación se muestra un ejemplo de un Marco de datos En un formato gráfico. Representa un grupo de series temporales de precios de cierre de acciones por fecha.
Este tutorial lo guiará a través de muchos de los métodos del marco de datos y utilizaré un modelo financiero del mundo real para demostrar estas funciones.
Importación de datos
Las clases de pandas tienen algunos métodos integrados para ayudar a importar datos en una estructura de datos. A continuación se muestra un ejemplo de cómo importar datos a un panel de pandas con el Dataader clase. Se puede utilizar para importar datos de varias fuentes de datos financieros gratuitos, incluidos Quandl, Yahoo Finance y Google. Para usar la biblioteca pandas, debe agregarla como importación en su código.
importar pandas como PDEl siguiente método iniciará el programa ejecutando el método de ejecución del tutorial.
Si __name__ == "__main__":El tutorial_run El método está debajo. Es el siguiente método que agregaré al código. La primera línea de este método define una lista de tickers de stock. Esta variable se utilizará más adelante en el código como una lista de acciones que los datos se solicitarán para poblar el Marco de datos. La segunda línea de código llama al obtener datos método. Como veremos, el obtener datos El método toma tres parámetros como su entrada. Pasaremos la lista de tickers de stock, la fecha de inicio y la fecha de finalización de los datos que solicitaremos.
Def tutorial_run ():A continuación definiremos el obtener datos método. Como mencioné anteriormente, se necesitan tres parámetros una lista de símbolos, una fecha de inicio y finalización.
La primera línea de código define un panel de pandas al instancias de un Dataader clase. La llamada al Dataader La clase se conectará al servidor de finanzas de Yahoo y solicitará los valores de cierre diarios altos, bajos, cercanos y ajustados para cada una de las acciones en el símbolo lista. Estos datos se cargan en un objeto de panel por pandas.
A panel es una matriz tridimensional y puede considerarse una "pila" de Marcos de datos. Cada Marco de datos en la pila contiene uno de los valores diarios para las acciones y los rangos de fecha solicitados. Por ejemplo, el siguiente Marco de datos, Presentado anteriormente, es el precio de cierre Marco de datos de la solicitud. Cada tipo de precio (alto, bajo, cercano y ajustado cerca) tiene el suyo Marco de datos en el panel resultante devuelto de la solicitud.
La segunda línea de código corta el panel en un solo Marco de datos y asigna los datos resultantes a df. Esta será mi variable para el Marco de datos que uso para el resto del tutorial. Contiene valores de cierre diario para las tres acciones para el rango de fecha especificado. El panel se corta especificando cuál del panel Marcos de datos Te gustaría volver. En esta línea de código de ejemplo a continuación, es el 'cierre'.
Una vez que tenemos nuestro Marco de datos En su lugar, cubriré algunas de las funciones útiles en la biblioteca de pandas que nos permitirán manipular los datos en el Marco de datos objeto.
Def get_data (símbolos, start_date, end_date):Cabeza y cola
La tercera y cuarta línea de obtener datos Imprima el cabezal de función y la cola del marco de datos. Encuentro esto muy útil en la depuración y la visualización de los datos, pero también se puede usar para seleccionar la primera o última muestra de los datos en el Marco de datos. La función de cabeza y cola extrae las filas de datos primero y última de Marco de datos. El parámetro entero entre los paréntesis define el número de filas que se seleccionarán por el método.
.loc
El Marco de datos loc método corta el Marco de datos por índice. La siguiente línea de código corta el df Marco de datos por el índice 2017-12-12. He proporcionado una captura de pantalla de los resultados a continuación.
Imprimir DF.Loc ["2017-12-12"]loc se puede usar como una porción bidimensional también. El primer parámetro es la fila y el segundo parámetro es la columna. El siguiente código devuelve un valor único que es igual al precio de cierre de Apple el 12/12/2014.
Imprimir DF.LOC ["2017-12-12", "AAPL"]El loc El método se puede usar para cortar todas las filas en una columna o todas las columnas en una fila. El : El operador se usa para denotar todo. La siguiente línea de código selecciona todas las filas de la columna para los precios de cierre de Google.
Imprimir DF.Loc [:, "Goog"]Es común, especialmente en los conjuntos de datos financieros, tener valores NAN en su Marco de datos. Pandas proporciona una función para llenar estos valores con un valor numérico. Esto es útil si desea realizar algún tipo de cálculo en los datos que pueden estar sesgados o fallar debido a los valores NAN.
El .fillna El método sustituirá el valor especificado por cada valor de NAN en su conjunto de datos. La siguiente línea de código llenará todos los nan en nuestro Marco de datos con un 0. Este valor predeterminado se puede cambiar para un valor que satisface la necesidad del conjunto de datos con el que está trabajando actualizando el parámetro que se pasa al método.
df.Fillna (0)Normalización de datos
Al usar algoritmos de aprendizaje automático o análisis financiero, a menudo es útil normalizar sus valores. El siguiente método es un cálculo eficiente para normalizar los datos en un pandas Marco de datos. Le animo a que use este método porque este código se ejecutará de manera más eficiente que otros métodos para normalizar y puede mostrar grandes aumentos de rendimiento en grandes conjuntos de datos.
.ILOC es un método similar a .loc pero toma parámetros basados en la ubicación en lugar de los parámetros basados en la etiqueta. Se necesita un índice basado en cero en lugar del nombre de la columna del .loc ejemplo. El siguiente código de normalización es un ejemplo de algunos de los potentes cálculos de matriz que se pueden realizar. Saltaré la lección de álgebra lineal, pero esencialmente esta línea de código dividirá toda la matriz o Marco de datos por el primer valor de cada serie de tiempo. Dependiendo de su conjunto de datos, es posible que desee una norma basada en min, max o media. Estas normas también se pueden calcular fácilmente utilizando el estilo basado en la matriz a continuación.
Def Normalize_Data (DF):Trazar datos
Cuando se trabaja con datos, a menudo es necesario representarlo gráficamente. El método de trazado le permite construir fácilmente un gráfico a partir de sus conjuntos de datos.
El método a continuación toma nuestro Marco de datos y lo traza en un gráfico de línea estándar. El método toma un Marco de datos y un título como parámetros. La primera línea de conjuntos de código hacha a una trama del DataFrame DF. Establece el título y el tamaño de la fuente para el texto. Las siguientes dos líneas establecen las etiquetas para el eje x e y. La línea final de código llama al método de programa que imprime el gráfico en la consola. He proporcionado una captura de pantalla de los resultados de la trama a continuación. Esto representa los precios de cierre normalizados para cada una de las acciones durante el período de tiempo seleccionado.
def plot_data (df,)::Pandas es una sólida biblioteca de manipulación de datos. Se puede utilizar para diferentes tipos de datos y presenta un conjunto sucinto y eficiente de métodos para manipular su conjunto de datos. A continuación he proporcionado el código completo del tutorial para que pueda revisar y cambiar para satisfacer sus necesidades. Hay algunos otros métodos que lo ayudan con la manipulación de datos y le animo a que revise los documentos de Pandas publicados en las páginas de referencia a continuación. Numpy y Matplotlib son otras dos bibliotecas que funcionan bien para la ciencia de datos y pueden usarse para mejorar el poder de la biblioteca de Pandas.
Página de inicio de Pandas
Página de Pandas Wikipedia
https: // en.Wikipedia.org/wiki/wes_mckinney
Página de inicio de Numfocus