Используйте разделитель нескольких символов в Python Pandas read csv
похоже, что панды read_csv функции только односимвольные разделители/сепараторы. Есть ли способ разрешить использование строки символов, например "* / * "или"%%"?
3 ответов
панды сейчас поддержка нескольких символов разделителей
import panda as pd
pd.read_csv(csv_file, sep="\*\|\*")
как пишет Падрайк Каннингем в комментарии выше, неясно, почему вы этого хотите. The запись Wiki для спецификации CSV состояния о разделителях:
... разделенные разделителями (обычно один зарезервированный символ, такой как запятая, точка с запятой или вкладка; иногда разделитель может содержать необязательные пробелы),
неудивительно, что оба csv
модуль и панды не поддерживают то, что вы просите.
однако, если вы действительно хотите это сделать, вы в значительной степени используете строковые манипуляции Python. В следующем примере показано, как превратить фрейм данных в " csv " с помощью $$
разделительные линии и %%
разделения столбцов.
'$$'.join('%%'.join(str(r) for r in rec) for rec in df.to_records())
конечно, вам не нужно превращать его в строку, подобную этой, прежде чем записывать ее в файл.
решением было бы использовать read_table вместо read_csv:
1*|*2*|*3*|*4*|*5
12*|*12*|*13*|*14*|*15
21*|*22*|*23*|*24*|*25
Итак, мы могли бы читать это с:
pd.read_table('file.csv', header=None, sep='\*\|\*')