Как загрузить файл tsv в фрейм данных Pandas?


136

Я новичок в питоне и пандах. Я пытаюсь tsvзагрузить файл в панда DataFrame.

Вот что я пытаюсь и получаю ошибку:

>>> df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))

Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    df1 = DataFrame(csv.reader(open('c:/~/trainSetRel3.txt'), delimiter='\t'))
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 318, in __init__
    raise PandasError('DataFrame constructor not properly called!')
PandasError: DataFrame constructor not properly called!

11
Для тех, кто придет к этому ответу в 2017+, используйте read_csv('path_to_file', sep='\t'). См. Этот ответ ниже
Тед Петру

Спасибо @TedPetrou
Salomon

Ответы:


153

Примечание . Начиная с версии 17.0 from_csvне рекомендуется: используйте pd.read_csvвместо этого

В документации перечислена функция .from_csv, которая, похоже, делает то, что вы хотите:

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t')

Если у вас есть заголовок, вы можете пройти header=0.

DataFrame.from_csv('c:/~/trainSetRel3.txt', sep='\t', header=0)

4
У меня были проблемы с этим методом - он был очень медленным и в конце не удалось выполнить индексацию. Вместо этого я использовал read_table (), который работал намного быстрее и без дополнительных параметров.
Юрик

21
Обратите внимание, что с версии 17.0 from_csvне рекомендуется: используйте pd.read_csvвместо этого!
rafaelvalle 03

2
Мне пришлось использовать следующее: DataFrame.read_csv ('filepath.tsv', sep = '', header = 0)
Арчи

3
Это плохой ответ; вы можете читать TSV изначально pd.read_csv/read_table, вам просто нужно установить delim_whitespace=Trueилиsep
smci

3
@rafaelvalle добавил устаревшее уведомление
Arayan Singh

84

По состоянию на 17.0 from_csvне рекомендуется.

Используйте pd.read_csv(fpath, sep='\t')или pd.read_table(fpath).


4
Примечание. Read_table устарела с версии 0.24.0. Вместо этого используйте pandas.read_csv ().
ManuelSchneid3r

57

Используйте read_table(filepath). Разделитель по умолчанию - табуляция


1
read_table не требует никаких параметров. Прекрасно работает.
Джей

19

Попробуй это

df = pd.read_csv("rating-data.tsv",sep='\t')
df.head()

введите описание изображения здесь

На самом деле вам нужно исправить параметр sep .


7

открыть файл, сохранить как .csv, а затем применить

df = pd.read_csv('apps.csv', sep='\t')

для любого другого формата просто измените тег sep


0
df = pd.read_csv('filename.csv', sep='\t', header=0)

Вы можете загрузить файл tsv прямо во фрейм данных pandas, указав разделитель и заголовок.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.