Directorio de artículos
1. Introducción a los tipos de datos de texto
object
Hay dos tipos de datos de texto de Pandasstring
, y si una columna de datos contiene texto y datos, se establecerá de forma predeterminada en el tipo de objeto.- Antes de pandas1.0, solo había datos de texto y solo el tipo de objeto, y después de la dinastía pandas1.01.0, había un tipo de cadena.
- Si el tipo no se especifica como cadena, el tipo de texto generalmente es objeto
1) Tipo de introducción
(1) Una columna de datos contiene texto y datos, que por defecto es de tipo objeto:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': ['a', 'b', 'c', 'd'],
'B': ['ee', 'ff', 'gg', np.nan],
'C': [1, 2, 3, 4],
'D': [5, 6, 7, np.nan]
})
print(df)
print(df.dtypes)
resultado de la operación:
(2) El tipo de cadena debe especificarse mediante la configuración de dtype
parámetros :
# 方法1 :dtype='string'
df = pd.DataFrame({
'A': ['a', 'b', 'c', 'd']}, dtype='string')
print(df.dtypes)
# 方法2 : dtype=pd.StringDtype()
df = pd.DataFrame({
'A': ['a', 'b', 'c', 'd']}, dtype=pd.StringDtype())
print(df.dtypes)
resultado de la operación:
2) Tipo de conversión
Método 1: convertir a cadena por tipo
df = pd.Series({
'A': ['a', 'b', 'c', 'd']})
# 转换前
print(df)
print(df.dtypes)
# 转换后
df = df.astype("string")
print(df)
print(df.dtypes)
resultado de la operación:
Método 2: Selección inteligente del tipo de datos a través de df.convert_dtypes()
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': ['a', 'b', 'c', 'd'],
'B': ['ee', 'ff', 'gg', np.nan],
'C': [1, 2, 3, 4],
'D': [5, 6, 7, np.nan]
})
print('类型转换前')
print(df.dtypes)
df = df.convert_dtypes() # 智能数据类型选择
print('类型转换后')
print(df.dtypes)
resultado de la operación:
3) diferencia de tipo
La diferencia entre el tipo de cadena y el tipo de objeto es la siguiente:
- Los métodos de acceso a cadenas que devuelven una salida numérica siempre devolverán un tipo entero que acepta valores NULL para una cadena, o un int o float para un objeto, dependiendo de la presencia de valores NA
- Para el tipo de cadena, el método que devuelve una salida booleana devolverá un tipo de datos booleano booleano anulable y el tipo de objeto sigue siendo objeto
Diferencia 1: al contar cadenas
Al contar la cadena s.str.count():
- Ninguno de los tipos de cadena devuelve NaN, y el dtype es
Int64
; después de eliminar los valores faltantes a través de dropna(), el dtype también esInt64
- Ninguno de los tipos de objeto devuelve NaN, y dtpye lo es
float64
; después de eliminar los valores faltantes a través de dropna(), el dtype esInt64
tipo de cadena:
import pandas as pd
import numpy as np
s = pd.Series(['小明', '小红', None], dtype='string')
print("去除空值前:")
print(s)
print(s.str.count('小'))
print("去除空值后:")
s.dropna(inplace=True)
print(s)
print(s.str.count('小'))
resultado de la operación:
tipo de objeto:
import pandas as pd
import numpy as np
s = pd.Series(['小明', '小红', None], dtype='object')
print("去除空值前:")
print(s)
print(s.str.count('小'))
print("去除空值后:")
s.dropna(inplace=True)
print(s)
print(s.str.count('小'))
resultado de la operación:
Diferencia 2: al verificar una cadena
Al verificar una cadena a través de str.isdigit():
- tipo de cadena, devuelve tipo booleano,dtype= booleano, el valor faltante es NA
- tipo de objeto, aunque el tipo de retorno es booleano,Pero dtype = objeto, Ninguno devuelve Ninguno
import pandas as pd
import numpy as np
s = pd.Series(['小明', '小红', None], dtype='string')
print("string类型:")
print(s.str.isdigit())
s = pd.Series(['小明', '小红', None], dtype='object')
print("object:")
print(s.str.isdigit())
resultado de la operación:
2. Método integrado de cadenas de Python
La cadena es un tipo de datos común. Los datos de texto y json que encontramos pertenecen a la categoría de cadena. Python tiene muchos métodos integrados para procesar cadenas, lo que nos brinda una gran comodidad para procesar y limpiar datos. Este artículo presentará conversión de mayúsculas y minúsculas, métodos de alineación de texto,
1) Conversión de casos
método | ilustrar |
---|---|
cadena.inferior() | Convierte todos los caracteres en mayúsculas en cadena a minúsculas |
cadena.superior() | Convertir letras minúsculas en cadena a mayúsculas |
cadena.mayúsculas() | escribe en mayúscula el primer carácter de una cadena |
cadena.título() | Poner en mayúscula la primera letra de cada palabra en una cadena |
cadena.intercambiar() | flip case en cadena |
2) Alineación de texto
método | ilustrar |
---|---|
string.bright(ancho) | Devuelve una nueva cadena con la cadena original alineada a la izquierda y rellenada con espacios al ancho de la longitud |
cadena.rjust(ancho) | Devuelve una nueva cadena con la cadena original alineada a la derecha y rellenada con espacios al ancho de la longitud |
cadena.center(ancho) | Devuelve una nueva cadena con la cadena original centrada y rellenada con espacios al ancho de la longitud |
3) Obtener la longitud
método | ilustrar |
---|---|
len(cadena) | Devuelve la longitud de la cadena. |
4) Obtenga el número de ocurrencias
método | ilustrar |
---|---|
contar (cadena) | Devuelve el número de ocurrencias de cada elemento de cadena. |
5) Codificación
método | ilustrar |
---|---|
codificar('utf-8') | codificación de caracteres, pasando la cadena |
3. ¿Cómo utiliza Pandas los métodos integrados?
- En el proceso de limpieza y análisis de datos diarios, a menudo es necesario procesar datos de tipo cadena. Y pandas tiene
Series.str
muchos métodos integrados basados en accesores para procesar cadenas.Después de que las columnas específicas de pandas pasen str, puede usar varios métodos de procesamiento de caracteres comunes de Python y funciones integradas, lo que puede ayudarnos a mejorar en gran medida los datos de cadena. .- Pandas
.str
puede usar el método incorporado de cadena en el objeto Serie llamándolo (la función de procesamiento de cadena en pandas comienza con str) para operar en una columna en el marco de datos.Esta operación vectorizada mejora la eficiencia del procesamiento.
1) Conversión de casos
método | ilustrar |
---|---|
series_obj.str.inferior() | Convierte todos los caracteres en mayúsculas en cadena a minúsculas |
series_obj.str.superior() | Convertir letras minúsculas en cadena a mayúsculas |
series_obj.str.capitalizar() | escribe en mayúscula el primer carácter de una cadena |
series_obj.str.title() | Poner en mayúscula la primera letra de cada palabra en una cadena |
series_obj.str.swapcase() | flip case en cadena |
Preparar datos:
import pandas as pd
import numpy as np
series_obj = pd.Series(['A', 'b', 'ABC', 'Abc', 'abc', 'This is abc', np.nan], dtype='string')
print(df)
resultado de la operación:
1. Convierta todos los caracteres en mayúsculas en una cadena a minúsculas:
series_obj.str.lower()
resultado de la operación:
2. Convierta letras minúsculas en cadena a mayúsculas:
series_obj.str.upper()
resultado de la operación:
3. Escriba en mayúscula el primer carácter de una cadena:
series_obj.str.capitalize()
resultado de la operación:
4. Pon la cuerdaPoner en mayúscula la primera letra de cada palabra(Observe la diferencia con mayúsculas):
series_obj.str.title()
5. Da la vuelta a la funda en hilo:
series_obj.str.swapcase()
resultado de la operación:
2) Alineación de texto
método | ilustrar |
---|---|
series_obj.str.ljust(ancho) | Devuelve una nueva cadena con la cadena original alineada a la izquierda y rellenada con espacios al ancho de la longitud |
series_obj.str.rjust(ancho) | Devuelve una nueva cadena con la cadena original alineada a la derecha y rellenada con espacios al ancho de la longitud |
series_obj.str.center(ancho) | Devuelve una nueva cadena con la cadena original alineada en el centro y rellenada con espacios al ancho de la longitud |
1. Devuelva una nueva cadena con la cadena original alineada a la izquierda y rellenada con espacios a una longitud de ancho:
# 左对齐:宽度为10,空余部分用 '-' 填充
series_obj.str.ljust(8, fillchar='-')
resultado de la operación:
2. Devuelva una nueva cadena con la cadena original alineada a la derecha y rellenada con espacios a una longitud de ancho :
# 右对齐:宽度为10,空余部分用 '-' 填充
series_obj.str.rjust(8, fillchar='-')
resultado de la operación:
3. Devuelva una nueva cadena cuya cadena original esté alineada al centro y rellenada con espacios a una longitud de ancho:
# 居中对齐:宽度为10,空余部分用 '-' 填充
series_obj.str.center(8, fillchar='-')
resultado de la operación:
3) Obtener la longitud
método | ilustrar |
---|---|
series_obj.str.len(cadena) | Devuelve la longitud de la cadena. |
series_obj.str.len()
resultado de la operación:
4) Obtenga el número de ocurrencias
método | ilustrar |
---|---|
series_obj.str.count(cadena) | Devuelve el número de ocurrencias de cada elemento de cadena. |
Cuente cuántas veces aparece A, el conteo distingue entre mayúsculas y minúsculas:
series_obj.str.count('A')
series_obj.str.count('a')
resultado de la operación:
5) Codificación
método | ilustrar |
---|---|
series_obj.str.encode('utf-8') | codificación de caracteres, pasando la cadena |
La codificación de caracteres se establece en utf8:
series_obj.str.encode('utf-8')
4. Precauciones
1,.str
El descriptor de acceso solo se puede usar en la estructura de datos de la serie.. Además de la variable de columna regular df.col, también puede usar los tipos de índice df.Index y df.columns
2,Asegúrese de que el tipo de objeto al que se accede sea un tipo de cadena str. Si no es necesario astype(str) convertir el tipo primero, de lo contrario se informará un error
3. Algunos métodos no se pueden usar en stringSeries, como: series_obj.str.decode()
, porque Series almacena cadenas en lugar de bytes:
series_obj.str.decode('utf-8')
resultado de la operación:
4.Los accesorios se pueden utilizar con múltiples conexiones. Por ejemplo series_obj.str.lower().str.title()
, usando el apilamiento de efectos:
# 先设置全部小写,然后设置首字母大写
series_obj.str.lower().str.title()
resultado de la operación:
Proxy de proveedor de internet
Python es inseparable de los reptiles. Recientemente, algunos amigos que quieren aprender reptiles me preguntaron dónde encontrar la IP del proxy. El blogger mismo usa una IP de proxy rastreador de alta estabilidad: Shenlong HTTP Proxy (puede hacer clic para averiguar si lo necesita )
introducción al libro
"Tutorial de PyTorch: 21 proyectos para jugar con PyTorch en acción"
PyTorch es una biblioteca de aprendizaje automático de código abierto basada en la biblioteca Torch, desarrollada principalmente por el laboratorio de investigación de inteligencia artificial de Meta (anteriormente Facebook), y tiene una amplia gama de aplicaciones en los campos del procesamiento del lenguaje natural y la visión artificial. Este libro presenta proyectos introductorios simples y clásicos, que son fáciles de comenzar rápidamente, como el reconocimiento de dígitos MNIST. Los lectores pueden comprender conceptos básicos como conjuntos de datos, modelos y capacitación durante el proceso de finalización de los proyectos. Este libro también presenta algunos modelos prácticos y clásicos, como el modelo R-CNN.A través del estudio de este modelo, los lectores pueden tener una comprensión básica de la tarea de detección de objetivos y tener una cierta comprensión de los principios básicos de la estructura de la red. Además, este libro también tiene una cierta introducción a las redes de confrontación generativas actualmente populares y al aprendizaje por refuerzo, que es conveniente para que los lectores amplíen sus horizontes y capten las direcciones de vanguardia.
Si no desea sortear una lotería, enlace de compra autooperado de JD: https://item.jd.com/13522327.html