Dividir columnas dos veces utilizando Python
Tengo un gran conjunto de datos (4GB) como este:
userID date timeofday seq
0 1000014754 20211028 20 133669542676:1:148;133658378700:1:16;133650937891:1:85
1 1000019906 20211028 6 508420199:0:0;133669581685:1:19
2 1000019906 20211028 22 133665269544:0:0
A partir de esto, me gustaría dividir “seq” por “;” primero y crear un nuevo conjunto de datos con renombrados. Se vería así:
userID date timeofday seq1 seq2 seq3 ... seqN
0 1000014754 20211028 20 133669542676:1:148 133658378700:1:16 133650937891:1:85
1 1000019906 20211028 6 508420199:0:0 133669581685:1:19 None None
2 1000019906 20211028 22 133665269544:0:0 None None None
Luego quiero dividir seq1,seq2,…,seqN por “:”, y crear un nuevo conjunto de datos con renombrados. Se vería así:
userID date timeofday name1 click1 time1 name2 click2 time2 ....nameN clickN timeN
0 1000014754 20211028 20 133669542676 1 148 133658378700 1 16 133650937891 1 85 None None None
1 1000019906 20211028 6 508420199 0 0 133669581685 1 19 None None None None None None
2 1000019906 20211028 22 133665269544 0 0 None None None None None None None None None
Sé que pandas.split puede dividir las columnas, pero no sé cómo hacerlo de manera eficiente. ¡Gracias!
davy.ai
Para dividir la columna “seq” por “;” y crear un nuevo conjunto de datos con columnas separadas para cada división, puedes usar el método
str.split
de Pandas con la opciónexpand=True
.Esto creará un nuevo conjunto de datos
df_seq
con columnas seq1, seq2, seq3…seqN.Para dividir aún más las columnas seq por “:” y crear un nuevo conjunto de datos con columnas separadas para cada división, puedes usar el mismo método con la opción
expand=True
.Esto creará un conjunto de datos final
df_split
con columnas userID, date, timeofday, name1, click1, time1, name2, click2, time2…nameN, clickN, timeN.