Почему мой CSV-файл отделен "\ t" вместо запятых (",")? - PullRequest
0 голосов
/ 07 февраля 2020

Я скачал данные из inte rnet и сохранил их в виде файла csv (с разделителями-запятыми). Изображение показывает, как файл выглядит в Excel.

Используя csv.reader в python, я напечатал каждую строку. Я показал мой код ниже вместе с выводом в Spyder.

import csv

with open('p_dat.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

Я очень смущен тем, почему мои значения не разделены запятыми. Любая помощь будет принята с благодарностью.

enter image description here

enter image description here

Ответы [ 3 ]

2 голосов
/ 07 февраля 2020

Как отмечено в комментариях, технически это TSV (разделенный табуляцией), который на самом деле совершенно допустим.

На практике, конечно, не все библиотеки будут проводить "жесткое" различие между TSV и CSV. То, как вы анализируете TSV, в основном совпадает с тем, как вы анализируете CSV, за исключением того, что разделитель отличается.

На самом деле существует несколько допустимых разделителей для этого типа файлов, таких как табуляции, запятые и точка с запятой. Какой из них вы выберете, честно говоря, является вопросом предпочтения, а не «жестким» техническим ограничением.

0 голосов
/ 07 февраля 2020

Даже если они называются значениями, разделенными запятыми, они иногда разделяются разными символами (например, символом табуляции, который у вас есть).

Если вы хотите использовать Python для просмотра этого в виде файла, разделенного запятыми, вы можете попробовать что-то вроде:

 import csv
...
        with open('p_dat.csv', 'r') as file:
            reader = csv.reader(file)
            for row in reader:
               commarow = row.replace("\t",",")
               print(commarow) 
0 голосов
/ 07 февраля 2020

См. спецификацию для csvs . В файле есть много опций для разделителя. В этом случае у вас есть вкладка, \t.

Эта опция важна. Предположим, ваши данные содержат запятые, тогда , в качестве разделителя не будет хорошим выбором.

...