0

Как считать файл с разделителем в виде точки с запятой в pandas?

12

Я пытаюсь импортировать файл .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 ответ(ов)

0

В ответ на вопрос Морриса выше:

"Можно ли программно определить, разделен ли 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. Если количество столбцов при разделении на запятые больше, это означает, что файл, скорее всего, разделён запятыми; в противном случае — точками с запятой.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь