actualmente tengo una columna en un marco de datos de pandas. df
que se parece a esto:
leer_nombre |
---|
NB511043:297:HJJMHBGXJ:1:22110:22730:3876 |
NB511043:297:HJJMHBGXJ:4:22609:8139:4265 |
NB511043:298:HT6KCBGXJ:1:13311:16766:2025 |
Lo que espero hacer es extraer específicamente los elementos 5 y 7 de cada cadena en este df y agregarlos al final del mismo marco de datos, así:
valor | 5to elemento | 7mo elemento |
---|---|---|
NB511043:297:HJJMHBGXJ:1:22110:22730:3876 | 22110 | 3876 |
NB511043:297:HJJMHBGXJ:4:22609:8139:4265 | 22609 | 4265 |
NB511043:298:HT6KCBGXJ:1:13311:16766:2025 | 13311 | 2025 |
mi método actual es crear un marco de datos completamente nuevo usando str.split
para dividir todo en read_name, y luego simplemente agregar estos valores al nuevo marco de datos. Al igual que
df_read_name= df['read_name'].str.split(":", n = 6, expand = True)
df['5th element']= pd.to_numeric(df_read_name[4])
df['7th element']= pd.to_numeric(df_read_name[6])
Sin embargo, creo que esto es un poco engorroso y esperaba que pudiera haber un enfoque más rápido.
¡Como siempre, cualquier ayuda se agradece!
Puedes usar .str.split
con expand=True
:
df[["5th element", "7th element"]] = df["read_name"].str.split(":", expand=True)[[4, 6]].astype(int)
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras