Как считать файл с разделителем в виде точки с запятой в pandas?
Я пытаюсь импортировать файл .csv
в Python с помощью библиотеки pandas.
Вот формат файла из .csv
:
a1;b1;c1;d1;e1;...
a2;b2;c2;d2;e2;...
.....
Вот как я его загружаю:
from pandas import *
csv_path = "C:...."
data = read_csv(csv_path)
Однако, когда я пытаюсь распечатать содержимое файла, я получаю следующее:
0 a1;b1;c1;d1;e1;...
1 a2;b2;c2;d2;e2;...
Всё выглядит как одна строка без разбивки на колонки. Я нуждаюсь в помощи, чтобы правильно прочитать файл и разделить значения по столбцам, используя символ точки с запятой ;
.
1 ответ(ов)
В ответ на вопрос Морриса выше:
"Можно ли программно определить, разделен ли CSV на запятые или точки с запятой?"
Вы можете использовать следующий подход:
import pandas as pd
df_comma = pd.read_csv(your_csv_file_path, nrows=1, sep=",")
df_semi = pd.read_csv(your_csv_file_path, nrows=1, sep=";")
if df_comma.shape[1] > df_semi.shape[1]:
print("разделён запятыми")
else:
print("разделён точками с запятой")
В этом коде мы сначала читаем одну строку файла CSV с разделителями запятыми и точками с запятой, а затем сравниваем количество столбцов в каждом DataFrame. Если количество столбцов при разделении на запятые больше, это означает, что файл, скорее всего, разделён запятыми; в противном случае — точками с запятой.
Запись DataFrame pandas в CSV файл
Как избежать создания индекса при сохранении DataFrame в CSV с помощью pandas
Ошибка UnicodeDecodeError при чтении CSV-файла в Pandas
pandas.parser.CParserError: Ошибка при токенизации данных
Импорт нескольких CSV-файлов в pandas и объединение в один DataFrame