Use Delimitador de caracteres múltiples en Python Pandas read_csv

Parece que la función pandas read_csv solo permite delimitadores / separadores de un solo carácter. ¿Hay alguna manera de permitir que se use una cadena de caracteres como “* | *” o “%%” en su lugar?

Pandas ahora soporta delimitadores de múltiples caracteres

import panda as pd pd.read_csv(csv_file, sep="\*\|\*") 

La solución sería utilizar read_table en lugar de read_csv:

 1*|*2*|*3*|*4*|*5 12*|*12*|*13*|*14*|*15 21*|*22*|*23*|*24*|*25 

Entonces, podríamos leer esto con:

 pd.read_table('file.csv', header=None, sep='\*\|\*') 

Como Padraic Cunningham escribe en el comentario anterior, no está claro por qué quiere esto. La entrada de Wiki para los estados de especificaciones CSV sobre delimitadores:

… separados por delimitadores (por lo general, un solo carácter reservado, como coma, punto y coma o tabulador; a veces el delimitador puede incluir espacios opcionales),

No es sorprendente que tanto el módulo csv como los pandas no sean compatibles con lo que estás preguntando.

Sin embargo, si realmente quieres hacerlo, estás bastante acostumbrado a usar las manipulaciones de cuerdas de Python. El siguiente ejemplo muestra cómo convertir el dataframe en un “csv” con $$ separando las líneas y %% separando las columnas.

 '$$'.join('%%'.join(str(r) for r in rec) for rec in df.to_records()) 

Por supuesto, no tiene que convertirlo en una cadena como esta antes de escribirla en un archivo.