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.
Uno, 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 (índices de fila)
3. S1 = pd.Series (['a', 'b', 'c'], index = (1,3,4)) especifique 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 de S1.values ()
7. Df = pd.DataFrame (['a', 'b', 'c']) Un marco de datos 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úsculas', 'mayúsculas'], índice = ['uno', 'dos' ,'Tres'])
Columms es el índice de la columna y el índice es el índice de la fila.
9. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider Tsinghua mirror
10. data = {'minúsculas': ['a', 'b', 'c'], 'mayúsculas': ['A', 'B', 'C']} diccionario entrante
Df = Pd.DataFrame (datos)
11 、 Df.index () df.columns ()
Dos, lee los datos
12 、 df = pd.read_excel (r'C: \ usuario \ ... xlsx ', sheet_name =' sheet1 ') 或
Pd.read_excel (r'C: \ user \ ... xlsx ', sheet_name = 0) leer hoja de Excel
13 、 Pd.read_excel (r'C: \ usuario \ ... xlsx ', index_col = 0, encabezado = 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 sin index_col y encabezado
15. pd.read_tablel (r'C: \ user \ ... txt ', sep =' ') Importa un archivo txt y sep especifica cuál es el separador
16. df.head (2) muestra las dos primeras filas, las primeras 5 filas se muestran de forma predeterminada
17. df.shape muestra varias filas y columnas de datos, excluyendo los índices de filas y columnas
18. http://df.info () puede ver el tipo de datos en la tabla
19. df.describe () puede obtener el valor de distribución (suma, promedio, varianza, etc.) de los dedos de tipo numérico en la tabla
Tres, preprocesamiento de datos
20. http://df.info () puede mostrar qué datos de la tabla están vacíos
21. El método df.isnull () puede determinar qué valor es un valor faltante, si falta, devuelve Verdadero, de lo contrario es Falso
22, df.dropna () elimina las filas con valores faltantes de forma predeterminada
23. df.dropna (how = 'all') elimina las filas con todos los valores vacíos, y las filas con no todos los valores vacíos no se eliminarán
24, df.fillna (0) llena todos los valores vacíos con 0
25. df.fillna ({'sex': 'male', 'age': '30'}) Complete male con un valor nulo en la columna de género y complete con 30 para la edad
26. df.drop_duplicates () comprueba todos los valores en busca de valores duplicados de forma predeterminada y conserva el valor de la primera fila
27. df.drop_duplicates (subset = 'gender') retiene la primera fila para la consulta de valor duplicado en la columna de género
28. df.drop_duplicates (subset = ['gender', 'company'], keep = 'last') revisa el género y la compañía
La configuración de mantener está predeterminada en la primera (mantener la primera), se puede configurar para la última (mantener la última) o False (no conservar la parte)
29, df ['ID']. Dtype ver el tipo de datos de la columna de ID
30. df ['ID']. Astype ('float') convierte el tipo de datos de la columna de ID en tipo flotante
31. Tipos de datos: int, float, object, string, unicode, datetime
32. df ['ID'] [1] Los segundos datos de la columna ID
33, df.columns = ['mayúsculas', 'minúsculas', 'chino'] agregar índice de columna para la tabla no indexada
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 = ('order number': 'new order number', 'customer name': 'new customer name')) para cambiar el nombre del índice de fila
37, df.rename (column = (1: 'one', 2: 'two')) renombrar el índice de la columna
38. df.reset_index () convierte todos los índices en columnas por defecto
39, df.reset_index (level = 0) convierte el índice de nivel 0 en una columna
40, df.reset_index (drop = True) elimina el índice original
Cuatro, selección de datos
41. df [['ID', 'name']] es necesario cargar varios nombres de columna en la lista
42, df.iloc [[1,3], [2,4]] seleccionar datos con número de fila y columna
43. df.iloc [1,1] selecciona los datos de la 3ª fila y 2 columnas de la tabla, la primera fila tiene como valor predeterminado el índice de la columna
44, df.iloc [:, 0: 4] #Obtener el valor de la columna 1 a la columna 4
45. df.loc ['一'] #loc usa el nombre de la fila para seleccionar los datos de la fila, el formato es Serie, pero se puede acceder a él en forma de lista
46. df.loc ['一'] [0] o df.loc ['一'] ['número de serie']
47. df.iloc [1] #iloc seleccionar datos de fila con número de fila
48. df.iloc [[1,3]] # Numeración de filas múltiples para seleccionar datos de filas, use la lista para encapsular, de lo contrario se convierte en selección de filas y columnas
49. df.iloc [1: 3] #Seleccione la segunda y cuarta filas
50. df [df ['age'] <45] # Agregue la condición de juicio para devolver todos los datos que cumplen con las condiciones, y la columna de edad no está limitada
51. df [(df ['edad'] <45) & (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 el número
53. df [df ['age'] <45] [['age', 'ID']] # primero seleccione las filas a través de las condiciones de edad y luego especifique las columnas a través de diferentes índices
54. df.iloc [1: 3,2: 4] # Índice de corte
Cinco, operaciones numéricas
55. df ['edad']. Reemplace (100,33) # Reemplace 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 varios a uno, A y B se reemplazan con C
58. df.replace (('A': 'a', 'B': 'b', 'C': 'c')) # Reemplazo de varios a varios
59. df.sort_values (por = ['Número de formulario de solicitud'], ascendente = Falso) #La columna del número de formulario de solicitud se ordena en orden descendente y Ture se ordena en orden ascendente (predeterminado)
60. df.sort_values (by = ['Application Form Number'], na_position = 'first') # La columna del número de formulario de solicitud se organiza en orden ascendente y los valores faltantes se clasifican en primer lugar.
El valor que falta por defecto está en el último dígito.
61. df.sort_values (por = ['col1', 'col2'], ascendente = [False, True]) # Clasificación de varias columnas
62. df ['Ventas']. Rango (método = 'primero') # Clasificación de ventas (sin clasificación), el método tiene primero \ min \ max \ promedio
63. df.drop (['Ventas', 'ID'], eje = 1) #Borrar la columna, directamente el nombre de la columna
64. df.drop (df.columns [[4,5]], axis = 1) #Eliminar columna, que es el número
65. df.drop (columnas = ['Ventas', 'ID']) # De esta manera, para eliminar columnas, no es necesario escribir axis = 1
66, df.drop (['a', 'b'], axis = 0) #Borrar la fila, directamente el nombre de la columna
67. df.drop (df.index [[4,5]], axis = 0) #Eliminar fila, que es el número
68. df.drop (index = ['a', 'b']) # Elimina filas de esta manera, no necesitas escribir axis = 0
69. df ['ID']. Value_counts () # Cuente el número de veces que aparecen los datos en la columna de ID
70. df ['ID']. Value_counts (normalize = Ture, sort = False) # Cuente el número de ocurrencias de datos en la columna ID y ordénelas en orden descendente
71. df ['ID']. Unique () # Obtiene el valor único de la columna
72. df ['edad']. Isin (['a', 11]) # Compruebe si esta columna contiene a o 11
73. pd.cut (df ['ID'], bins = [0,3,6,10]) # Utilice bins para especificar la partición de corte
74. pd.qcut (df ['ID'], 3) La columna #ID se divide en 3 partes, el número de datos en cada parte es lo más coherente posible
75. df.insert (2, 'product', ['book', 'pen', 'calculator']) # inserta la tercera columna
76. df ['producto'] = ['libro', 'bolígrafo', 'calculadora']) # Insertar una nueva columna, al final de la tabla
77, df.T intercambio de filas y columnas
78. df.tack () # Convertir datos tabulares en datos de árbol
79. df.set_index (['ID', 'nombre']). Stack (). Reset_index () # Conversión de tabla amplia a tabla de crecimiento, primero establezca la columna común como índice de fila y luego las otras columnas
Transformar en datos de árbol y luego restablecer el índice de fila
80. df.melt (id_vars = ['ID', 'name'], var_name = 'year', value_name = 'sale') # El parámetro id_var indica que la tabla ancha se convierte en una tabla larga.
Columna modificada, el parámetro var_name representa el índice de la columna original convertido al nombre de la columna correspondiente al índice de la fila, value_name representa el nombre de la columna correspondiente al valor del nuevo índice
81. df ['C1']. Apply (lambda x: x + 1) #equivalente a map (), pero 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, cálculo 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 () # Cuente el número de valores no nulos en cada columna
86, df.count (axis = 1) #Cuenta el número de valores no vacíos en cada fila
87. df ['ID']. Count () # Cuente el número de valores no vacíos en la columna especificada
88. df.sum (axis = 1) # Resultado de la suma de cada columna / fila
89, df.mean (axis = 1) #Cada columna / fila promedio
90, df.max (axis = 1) #Encuentre el valor máximo para cada columna / fila
91, df.min (eje = 1) #Encuentre el valor mínimo para cada columna / fila
92, gl.median (eje = 1) # Encuentre la mediana para cada columna / fila
93, df.mode (axis = 1) #El valor más frecuente en cada columna / fila
94, df.var (axis = 1) # Encuentra la varianza para cada columna / fila
95, df.std (axis = 1) # Encuentre la desviación estándar para cada columna / fila
96, gl cuantil (0.25) # Hallar 1/4 cuantil, 0.5, 0.75 se puede obtener cuantil igual
97, df.corr () # Encuentra la correlación en toda la tabla DataFrame
Siete, series de tiempo
98 、 desde fecha y hora importar fecha y hora
99, datatime.now () # Devuelve la hora actual año, mes, día, hora, minuto y 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 () # Devuelve el número de la semana
103. (2018, 41, 7) # El séptimo día de la 41a semana de 2018
104, datatime.now (). Date () # Solo devuelve año, mes y día
105, datatime.now (). Time () # Devuelve solo el tiempo
106 、 datatime.now (). Strftime ('% Y-% m-% d% H:% M:% S') # 返回 2020-03-13 09:09:12
107 、 de dateutil.parer import parse
108, parse (str_time) #Convierte la hora de la cadena en un formato de hora
109, pd.Datetimeindex (['2020-02-03', 2020-03-05 ']) # Establecer índice de tiempo
110, data ['2018'] # Obtenga los datos de 2018
111, data ['2018-01'] # Obtenga los datos de enero de 2018
112. data ['2018-01-05': '2018-01-15'] # Obtener datos para este período
113. Procesamiento de tablas de índices no temporales
114. df [df ['Hora de oferta'] == fecha y hora (2018,08,05)]
115. df [df ['Hora de oferta']> fecha y hora (2018,08,05)]
116. df [(df ['Deal time']> datetime (2018,08,05)) & (df ['Deal time'] <datetime (2018,08,15))]
117 、 cha = datatime (2018,5,21,19,50) -datatime (2018,5,18,17,50)
118, cha.days # La diferencia horaria de los días que regresan
119, cha.seconds # Devuelve la diferencia de tiempo en segundos
120, cha.seconds / 3600 # Devuelve la diferencia horaria en horas
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) # retrocede 20 segundos
123, datatime (2018,5,21,19,50) -timedelta (días = 1) # avanza un día
Ocho, mesa pivotante
124, df.groupby ('Clasificación del cliente'). Count () # Calcular el número después de la clasificación del cliente
125. df.groupby ('Clasificación del cliente'). Sum () # Operación de suma después de la clasificación del cliente
126, df.groupby ('clasificación de cliente', 'clasificación de área'). Sum () # Operación de suma después de la clasificación de varias columnas
127, df.groupby ('clasificación de cliente', 'clasificación de área') ['ID']. Sum () # Operación de suma de ID después de la clasificación de varias columnas
128. df ['ID'] # DataFrame saca una columna es el tipo de serie
129. df.groupby (df ['ID']). Sum () es equivalente a df.groupby ('ID'). Sum ()
130. df.groupby ('clasificación de clientes'). Aggregate (['sum', 'count'] # aggregate puede realizar múltiples métodos de agregación
131, df.groupby ('clasificación del cliente'). Aggregate ({'ID': 'count', 'sales': 'sum'})
132, # agregado puede realizar diferentes operaciones de resumen para diferentes columnas
133. df.groupby ('Clasificación de clientes'). Sum (). Reset_index () # Después de agrupar y resumir, restablezca el índice y conviértase 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: valores, índice: índice de fila, columnas: índice de columna, aggfunc: tipo de cálculo de valores, fill_value: método de llenado para valores vacíos; márgenes: si hay una columna total; margins_name : El nombre de la columna de la columna total
136, pd.pivot_table (df, values = ['ID', 'sales'], index = 'clasificación del cliente', columnas = 'area', aggfunc = {'ID': 'count', 'sales': 'sum ')), fill_value = 0, margins = Ture, dropna = None, margins_name =' Total ')
Nueve, empalme de varias mesas
137, pd.merge (df1, df2) # Encuentra automáticamente columnas comunes en las dos tablas para empalmar por defecto
138, pd.merge (df1, df2, on = "número de estudiante") # 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 = ['número de estudiante', 'nombre'] # 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 ') #Utilice las teclas izquierda y derecha para especificar cuándo el nombre de la clase es diferente de la columna pública
141, pd.merge (df1, df2, left_index = 'student number'right_index =' number ') # Cuando las columnas públicas de las dos tablas son todas columnas de índice
142, pd.merge (df1, df2, left_index = 'student number'right_on =' number ') # Cuando hay una columna pública, la columna de índice es una columna normal
143, pd.merge (df1, df2, on = 'student number', how = 'inner') # devuelve el empalme de valor público correspondiente en la columna pública (combinación interna)
144, pd.merge (df1, df2, on = 'student number', how = 'left') # devuelve el valor correspondiente de la tabla izquierda en la columna pública (conexión izquierda)
145, pd.merge (df1, df2, on = 'student number', how = 'right') # devuelve el valor correspondiente de la tabla derecha en la columna pública (conexión derecha)
146, pd.merge (df1, df2, on = 'student number', how = 'external') # devuelve todos los valores correspondientes en la columna pública (combinación externa)
147. pd.concat ([df1, df2]) # Dos tablas con la misma estructura están conectadas verticalmente, conservando el valor del índice original
148. pd.concat ([df1, df2], ignore_index = True) # Dos tablas con la misma estructura están conectadas verticalmente y el valor del índice se restablece
149, pd.concat ([df1, df2], ignore_index = True) .drop_duplicates () # Elimina los valores duplicados después del empalme
10. Exportar archivos
150. df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ 测试 .xlsx ') # Exportar formato de archivo.xlsx usa el método to_excel, que se logra a través del parámetro excel_writer
151. df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' documento ')
152, df.to_excel (excel_writer = r'C: \ users \ zhoulifu \ Desktop \ test.xlsx ', sheet_name =' document ', index = False) # Exportar 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 las 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 la columna exportada
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 faltante
156, writer = pd.ExcelWriter (excelpath, engine = 'xlsxwirter') # Exportar varios archivos a varias hojas de un archivo
157 、 df1.to_excel (escritor, sheet_name = '表 一')
158 、 df2.to_excel (escritor, sheet_name = '表 二')
159 、 writer.save ()