Панды read_table с sep = '::' - PullRequest
       2

Панды read_table с sep = '::'

0 голосов
/ 04 декабря 2018

Я прохожу Python для анализа данных и в Главе 2 есть вводные примеры, через которые я работаю.На странице 27 он показывает следующий код:

import pandas as pd
users = pd.read_table('ml-1m/users.dat', sep='::', header=None,
names=unames)

Вот ссылка на файл .dat github: https://github.com/wesm/pydata-book/tree/2nd-edition/datasets/movielens

Когда этот код запускается, я получаю следующую ошибку:

(base) C:\Users\d.kelly\Desktop\Python\PforDA>pforda.py
C:\Users\d.kelly\Desktop\Python\PforDA\PforDA.py:3: ParserWarning: Falling back
to the 'python' engine because the 'c' engine does not support regex separators
(separators > 1 char and different from '\s+' are interpreted as regex); you can
 avoid this warning by specifying engine='python'.
  users = pd.read_table('users.dat', sep = '::', header = None, names = unames)

Я использую Anaconda и Python 3 - уверен, что книга была написана для Python 2.7, но я все же хотел бы знать, как заставить этот пример работать без сообщений об ошибках.Уэс - умный парень, и я уверен, что наличие двухзначных разделителей - это то, с чем я столкнусь снова.

Мой вопрос в Python 3, как правильно использовать read_table Панды для чтения двухзначных разделителей ине получать предупреждения?

1 Ответ

0 голосов
/ 04 декабря 2018

Параметр header=None необязателен, так как это определенный параметр names, для предупреждения об ошибке добавьте engine='python':

unames = ['a','b','c', 'd']
users = pd.read_table('users.dat', sep='::', names=unames, engine='python')
#alternative
#users = pd.read_csv('users.dat', sep='::', names=unames, engine='python')
print (users.head())
   a   b   c      d
1  F   1  10  48067
2  M  56  16  70072
3  M  25  15  55117
4  M  45   7  02460
5  M  25  20  55455

Разница между read_table и read_csv находится в разделителе по умолчанию, если определить, что пользовательские оба работают одинаково.

pandas.read_table
sep: str, по умолчанию t (tab-stop)

pandas.read_csv
sep: str, по умолчанию ','

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...