Як завантажити tsv файл у Pandas DataFrame?


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
Саломон Кабонго

Відповіді:


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

2
Мені довелося скористатися наступним: DataFrame.read_csv ('filepath.tsv', sep = '', заголовок = 0)
Арчі

3
Це погана відповідь; ви можете читати ТСВ на самому 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 не вимагає жодних параметрів. Прекрасно працює.
Jay

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 безпосередньо в кадр даних панди, вказавши роздільник та заголовок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.