La biblioteca Pandas está diseñada para el análisis de datos y es un factor importante que hace de Python un entorno de análisis de datos potente y eficiente.
1. Estructura de datos de pandas
1 、 importar pandas como pd
importar numpy como np
importar matplotlib.pyplot como plt
2. La serie S1 = pd.Series (['a', 'b', 'c']) es una estructura de datos compuesta por un conjunto de datos y un conjunto de índices (índice de fila)
3. S1 = pd.Series (['a', 'b', 'c'], index = (1,3,4)) especifica el índice
4. S1 = pd.Series ({1: 'a', 2: 'b', 3: 'c'}) Especifique el índice en forma de diccionario
5. S1.index () devuelve el índice
6, valor de retorno S1.values ()
7. Df = pd.DataFrame (['a', 'b', 'c']) dataframe es una estructura de datos compuesta por un conjunto de datos y dos conjuntos de índices (índices de fila y columna)
8. Df = pd.DataFrame ([[a, A], [b, B], [c, C]], columnas = ['minúscula', 'mayúscula'], índice = ['uno', 'dos' , 'Tres'])
Columms es un índice de columna, index es un índice de fila
9. pip install -i https: // pypi.tuna.tsinghua.edu.cn / simple pyspider Tsinghua Mirror
10. data = {'minúscula': ['a', 'b', 'c'], 'mayúscula': ['A', 'B', 'C']} diccionario entrante
Df = Pd.DataFrame (datos)
11 、 Df.index () df.columns ()
Segundo, lee los datos
12 、 df = pd.read_excel (r'C: \ user \ ... xlsx ', sheet_name =' sheet1 ') 或
Pd.read_excel (r'C: \ user \ ... xlsx ', sheet_name = 0) lee la hoja de Excel
13 、 Pd.read_excel (r'C: \ user \ ... xlsx ', index_col = 0, header = 0)
index_col especifica el índice de la fila, el encabezado especifica el índice de la columna
14. pd.read_excel (r'C: \ user \ ... xlsx ', usecols = [0,1]) importa la columna especificada, no puede haber index_col ni encabezado
15, pd.read_tablel (r'C: \ user \ ... txt ', sep =' ') importa el archivo txt, sep especifica cuál es el separador
16. df.head (2) muestra las dos primeras líneas, el valor predeterminado muestra las primeras cinco líneas
17. df.shape muestra varias filas y columnas de datos, excluyendo índices de filas y columnas
18, HTTP: // df.info () para visualizar los datos en un tipo de tabla
19. df.describe () puede obtener el valor de distribución (suma, valor promedio, varianza, etc.) del tipo de dedo del tipo numérico en la tabla
Tres, preprocesamiento de datos
20, HTTP: // df.info () para mostrar la tabla en la que los datos está vacía
21. El método df.isnull () puede determinar qué valor falta, si falta devolver True, de lo contrario False
22. df.dropna () elimina filas con valores faltantes por defecto
23. df.dropna (how = 'all') elimina todas las filas vacías, no se eliminarán las filas vacías
24. df.fillna (0) llena todos los valores nulos con 0
25. df.fillna ({'Sexo': 'Hombre', 'Edad': '30'}) Rellene el hombre del valor nulo de la columna de género, complete la edad de 30
26. df.drop_duplicates () comprueba los valores duplicados para todos los valores de forma predeterminada y mantiene el valor de la primera línea
27. df.drop_duplicates (subset = 'sex') retiene la primera fila para la consulta de valor duplicado en la columna de género
28. df.drop_duplicates (subconjunto = ['género', 'compañía'], mantener = 'último') Verifique las dos columnas de género y compañía
La configuración predeterminada de conservar es primero (conservar el primero), y se puede configurar para durar (conservar el último) o Falso (no se conserva ninguna parte)
29. df ['ID']. Dtype Ver el tipo de datos de la columna ID
30. df ['ID']. Astype ('float') convierte el tipo de datos de la columna ID en tipo flotante
31. Tipo de datos: int, float, object, string, unicode, datetime
32. df ['ID'] [1] Los segundos datos en la columna ID
33. df.columns = ['大字', '小写', 'Chinese'] Agregue índices de columna para tablas sin índice
34. df.index = [1,2,3] agregar índice de fila
35. df.set_index ('número') especifica la columna que se utilizará como índice de fila
36. df.rename (index = {'número de pedido': 'nuevo número de pedido', 'nombre de cliente': 'nuevo nombre de cliente'}) cambie el nombre del índice de fila
37. df.rename (columnas = {1: 'uno', 2: 'dos'}) Cambiar el nombre del índice de la columna
38. df.reset_index () convierte todos los índices a columnas por defecto
39. df.reset_index (nivel = 0) Convierte el índice de nivel 0 en columna
40. df.reset_index (drop = True) elimina el índice original
4. Selección de datos
41, df [['ID', 'nombre']] múltiples nombres de columna para cargar en la lista
42, df.iloc [[1,3], [2,4]] seleccionar datos con números de fila y columna
43. df.iloc [1,1] selecciona la tercera fila y dos columnas de datos en la tabla, la primera fila por defecto es el índice de la columna
44, df.iloc [:, 0: 4] #Obtén el valor de la primera columna a la cuarta columna
45. df.loc ['一'] #loc datos de fila seleccionados por nombre de fila, el formato es Serie, pero se puede acceder en forma de lista
46. df.loc ['一'] [0] o df.loc ['一'] ['Número de serie']
47. df.iloc [1] #iloc selecciona datos de fila por número de fila
48. df.iloc [[1,3]] # Datos de fila de selección de número de varias filas, use encapsulación de lista, de lo contrario se convertirá en selección de fila y columna
49. df.iloc [1: 3] #Seleccione las líneas segunda y cuarta
50. df [df ['edad'] <45] # Agregue condiciones de juicio para devolver todos los datos que cumplan las condiciones, sin limitar la columna de edad
51. df [(df ['edad'] <45) y (df ['ID'] <4)] # juzgar datos de selección de múltiples condiciones
52. df.iloc [[1,3], [2,4]] es equivalente a df.loc [['一', '二'], ['age', 'ID']] #loc es el nombre, iloc Es numero
53, df [df ['age'] <45] [['age', 'ID']] # Primero seleccione filas por condiciones de edad, luego especifique columnas por diferentes índices
54. df.iloc [1: 3,2: 4] #Slice index
V. operaciones numéricas
55, df ['edad']. Reemplazar (100,33) # Reemplazar 100 en la columna de edad con 33
56, df.replace (np.NaN, 0) # es equivalente a fillna (), donde np.NaN es la representación del valor predeterminado en python
57, df.replace ([A, B], C) # Reemplazo de muchos a uno, A, B reemplazado por C
58, df.replace ({'A': 'a', 'B': 'b', 'C': 'c'}) # Reemplazo de muchos a muchos
59. df.sort_values (by = ['número de orden de aplicación'], ascendente = Falso) # la columna de número de orden de aplicación se ordena en orden descendente, Ture se ordena en orden ascendente (predeterminado)
60. df.sort_values (by = ['número de formulario de solicitud'], na_position = 'first') # La columna de número de formulario de solicitud se ordena en orden ascendente, y los valores faltantes se clasifican primero
El valor perdido predeterminado es el último.
61. df.sort_values (by = ['col1', 'col2'], ascendente = [False, True]) # Clasificación de varias columnas
62. df ['Ventas']. Clasificación (método = 'primero') # Clasificación de ventas (no clasificación), el método tiene primero \ min \ max \ promedio
63. df.drop (['Ventas', 'ID'], eje = 1) # Eliminar la columna, directamente el nombre de la columna
64, df.drop (df.columns [[4,5]], axis = 1) #Borrar la columna, es el número
65. df.drop (columnas = ['Ventas', 'ID']) # De esta manera para eliminar la columna, no puede escribir axis = 1
66, df.drop (['a', 'b'], axis = 0) # Eliminar la fila, directamente el nombre de la columna
67, df.drop (df.index [[4,5]], axis = 0) #Borrar la fila, es el número
68. df.drop (index = ['a', 'b']) # Eliminar filas de esta manera, no puede escribir axis = 0
69. df ['ID']. Value_counts () # Cuenta el número de ocurrencias de datos en la columna ID
70. df ['ID']. Value_counts (normalize = Ture, sort = False) # Cuenta el número de ocurrencias de datos en la columna ID y ordena en orden descendente
71, df ['ID']. Unique () # Obtiene el valor único de la columna
72, df ['edad']. Isin (['a', 11]) # Verifique si esta columna contiene un o 11
73, pd.cut (df ['ID'], bins = [0,3,6,10]) # Use bins para indicar la partición entre particiones
74. pd.qcut (df ['ID'], 3) la columna #ID se corta en 3 partes, el número de datos en cada parte debe ser lo más consistente posible
75. df.insert (2, 'Commodity', ['Book', 'Pen', 'Calculator']) # Inserte la tercera columna
76, df ['commodity'] = ['book', 'pen', 'calculator']) # Insertar una nueva columna al final de la tabla
77, df.T intercambio de fila y columna
78, df.tack () # Convertir datos de tabla en datos de árbol
79. df.set_index (['ID', 'name']). Stack (). Reset_index () # Conversión de tabla ancha en una tabla larga, primero establezca la columna común como el índice de la fila, y luego para otras columnas
Transforme en datos de árbol y luego restablezca el índice de fila
80. df.melt (id_vars = ['ID', 'Name'], var_name = 'year', value_name = 'sale') # id_var parámetro indica que la tabla ancha no permanecerá cuando se convierta en una tabla larga
Columnas variables, el parámetro var_name indica que el índice de columna original se convierte al nombre de columna correspondiente al índice de fila, y value_name indica el nombre de columna del valor correspondiente al nuevo índice
81, df ['C1']. Apply (lambda x: x + 1) # es equivalente a map (), pero solo necesita cooperar con lambda
82, df.applymap (lambda x: x + 1), realiza la misma operación de función en todos los datos de la tabla
Seis, operación de datos
83, df ['ID'] + Df ['ID'] # puede sumar, restar, multiplicar y dividir
84, df ['ID']> Df ['ID'] # puede realizar operaciones de comparación como> <==! =
85, df.count () # cuenta el número de valores no nulos en cada columna
86 、 df.count (axis = 1) # Cuenta el número de valores no nulos en cada fila
87, df ['ID']. Count () # cuenta el número de valores no nulos de la columna especificada
88 、 df.sum (axis = 1) # resultado de suma de cada columna / fila
89 、 df.mean (axis = 1) # Cada columna / fila se promedia
90 、 df.max (axis = 1) # Encuentra el valor máximo de cada columna / fila
91, df.min (axis = 1) # Encuentra el valor mínimo de cada columna / fila
92 、 df.median (axis = 1) # Encuentra el valor medio de cada columna / fila
93, df.mode (axis = 1) # El mayor valor aparece en cada columna / fila
94, df.var (axis = 1) # Encuentra la varianza de cada columna / fila
95, df.std (axis = 1) # Encuentra la desviación estándar de cada columna / fila
96 、 df.quantile (0.25) # Encuentra 1/4 cuantil, puede ser 0.5, 0.75 igual cuantil
97, df.corr () # Buscando correlación en toda la tabla DataFrame
Siete, series de tiempo
98 、 desde datetime import datetime
99 、 datatime.now () # Devuelve la hora actual año, mes, día, hora, minuto, segundo
100, datatime.now (). Year # devuelve el año, puede ser .month \ .day
101, datatime.now (). Weekday () -1 # devuelve el día de la semana
102, datatime.now (). Isocalendar () # Número de semana de retorno
103, (2018, 41, 7) # 2018, Semana 41, Día 7
104 、 datatime.now (). Fecha () # Solo devuelve año, mes y día
105 、 datatime.now (). Time () # Solo tiempo de retorno
106 、 datatime.now (). Strftime ('% Y-% m-% d% H:% M:% S') # 返回 2020-03-13 09:09:12
107 、 de dateutil.parer importar analizar
108, parse (str_time) # Convierte la hora de la cadena al formato de hora
109 、 pd.Datetimeindex (['2020-02-03', 2020-03-05 ']) # Establecer índice de tiempo
110 、 datos ['2018'] # Obtenga datos 2018
111 、 data ['2018-01'] # Obtenga los datos de enero de 2018
112, datos ['2018-01-05': '2018-01-15'] # Obtenga datos para este período
113. Procesamiento de tabla de índice sin tiempo
114, df [df ['tiempo de negociación'] == datetime (2018,08,05)]
115, df [df ['hora del acuerdo']> fecha y hora (2018,08,05)]
116, df [(df ['tiempo de negociación']> datetime (2018,08,05)) y (df ['tiempo de negociación'] <datetime (2018,08,15))]
117, cha = datetime (2018,5,21,19,50) -datatime (2018,5,18,17,50)
118, cha.days # Devuelve la diferencia horaria de días
119, cha.seconds # Devuelve la diferencia de tiempo en segundos
120, cha.seconds / 3600 # devuelve la diferencia horaria
121 、 datatime (2018,5,21,19,50) + timedelta (días = 1) # Retroceder un día
122, datatime (2018,5,21,19,50) + timedelta (segundos = 20) # Retroceder 20 segundos
123 、 datatime (2018,5,21,19,50) -timedelta (días = 1) # Avanzar un día
Ocho, mesa pivotante
124, df.groupby ('clasificación del cliente'). Count () # operación de conteo después de la clasificación del cliente
125, df.groupby ('clasificación del cliente'). Suma () # operación de suma después de la clasificación del cliente
126, df.groupby ('clasificación de cliente', 'clasificación de región'). Suma () # operación de suma después de clasificación de varias columnas
127, df.groupby ('clasificación de cliente', 'clasificación de región') ['ID']. Suma () # operación de suma de ID de varias columnas
128, df ['ID'] # DataFrame saca una columna del tipo Serie
129. df.groupby (df ['ID']). Sum () es equivalente a df.groupby ('ID'). Sum ()
130, df.groupby ('clasificación del cliente'). Agregado (['suma', 'conteo'] # agregado puede realizar múltiples métodos de agregación
131. df.groupby ('Clasificación del cliente'). Agregado ({'ID': 'count', 'sales': 'sum'})
132, # agregado puede hacer diferentes operaciones de resumen para diferentes columnas
133, df.groupby ('clasificación de clientes'). Sum (). Reset_index () # Restablece el índice después de agrupar y resumir, convertirse en un DataFrame estándar
134 、 pd.pivot_table (datos, valores, índice, columnas, aggfunc, fill_value, margins, dropna, margins_name)
135. Tabla dinámica, datos: tabla de datos df, valores: valor, índice: índice de fila, columnas: índice de columna, aggfunc: tipo de cálculo de valores, fill_value: cómo llenar el valor vacío; márgenes: si hay una columna total; margins_name : Nombre total de la columna
136. pd.pivot_table (df, valores = ['ID', 'ventas'], índice = 'clasificación de clientes', columnas = 'región', aggfunc = {'ID': 'conteo', 'ventas': 'suma '}), fill_value = 0, margins = Ture, dropna = None, margins_name =' total ')
Nueve costuras de varias mesas
137, pd.merge (df1, df2) # Por defecto, encuentra automáticamente las columnas comunes en las dos tablas para empalmar
138, pd.merge (df1, df2, on = "study number") #on para especificar la columna de conexión, si la columna de conexión es una columna pública
139. pd.merge (df1, df2, on = ['Student ID', 'Name'] # on para especificar la columna de conexión, si la columna de conexión es una columna pública
140. pd.merge (df1, df2, left_on = 'student number'right_on =' number ') #por columnas públicas, pero cuando el nombre de la clase es diferente, use las teclas izquierda y derecha para especificar
141, pd.merge (df1, df2, left_index = 'student number' right_index = 'number') # Cuando las columnas comunes de ambas tablas son columnas de índice
142, pd.merge (df1, df2, left_index = 'student number' right_on = 'number') # Cuando la columna pública es una, la columna índice es una y la columna ordinaria
143, pd.merge (df1, df2, on = 'número de estudiante', how = 'interno') # volver al mosaico de valor público correspondiente en la columna pública (conexión interna)
144, pd.merge (df1, df2, on = 'número de estudiante', how = 'izquierda') # Devuelve el valor de la tabla izquierda correspondiente en la columna pública (conexión izquierda)
145, pd.merge (df1, df2, on = 'número de estudiante', cómo = 'derecho') # Devuelva el valor de la tabla derecha correspondiente en la columna pública (conexión derecha)
146, pd.merge (df1, df2, on = 'número de estudiante', how = 'externo') # devuelve todos los valores correspondientes en la columna pública (conexión externa)
147, pd.concat ([df1, df2]) # Dos tablas con la misma estructura están conectadas longitudinalmente, conservando el valor del índice original
148, pd.concat ([df1, df2], ignore_index = True) # Dos tablas con la misma estructura están conectadas verticalmente, restablezca el valor del índice
149, pd.concat ([df1, df2], ignore_index = True) .drop_duplicates () # Eliminar valores duplicados después de empalmar
Diez, exportar archivos
150. df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ') # El archivo de exportación format.xlsx utiliza el método to_excel, a través de los parámetros de excel_writer
151, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ')
152, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ', index = False) #Export es eliminar el índice
153, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ', index = False, columnas = [' ID ',' sales ',' name ']) # Establecer columnas exportadas
154, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ', index = False, columnas = [' ID ',' sales ',' name '], encoding = 'utf-8') # Establecer columnas exportadas
155, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ', index = False, columnas = [' ID ',' sales ',' name '], encoding = 'utf-8', na_rep = 0) # Relleno de valor perdido
156.writer = pd.ExcelWriter (excelpath, engine = 'xlsxwirter') # Exportar múltiples archivos a múltiples hojas de un archivo
157 、 df1.to_excel (escritor, hoja_nombre = '表 一')
158 、 df2.to_excel (escritor, hoja_nombre = '表 二')
159 、 writer.save ()
Datos de Douban de rastreo basados en Python0 https://www.bilibili.com/video/BV1HV411o7CM/
Hoja de ruta de aprendizaje de Python https://www.bilibili.com/video/BV1V741117Zt/
Dirección de empleo de Python y perspectivas de carrera https://www.bilibili.com/video/BV1ut4y1U7bM/