"rating.dat" dosyasında aşağıdaki kodu çalıştırdıktan sonra "ValueError" yaşıyorum. Aynı kodu başka bir dosyada "," ile herhangi bir sorun olmadan ayırıcı olarak denedim. Ancak, ayırıcılar "::" olduğunda pandalar başarısız oluyor.Pandalar'da değer hatası read_csv üzerindeki "::" ayırıcıda
Kodu yanlış mı yazdım?
Kodu:
import pandas as pd
import numpy as np
r_cols = ['userId', 'movieId', 'rating']
r_types = {'userId': np.str, 'movieId': np.str, 'rating': np.float64}
ratings = pd.read_csv(
r'C:\\Users\\Admin\\OneDrive\\Documents\\_Learn!\\'
r'Learn Data Science\\Data Sets\\MovieLens\\ml-1m\\ratings.dat',
sep='::', names=r_cols, usecols=range(3), dtype=r_types
)
m_cols = ['movieId', 'title']
m_types = {'movieId': np.str, 'title': np.str}
movies = pd.read_csv(
r'C:\\Users\\Admin\\OneDrive\\Documents\\_Learn!\\'
r'Learn Data Science\\Data Sets\\MovieLens\\ml-1m\\movies.dat',
sep='::', names=m_cols, usecols=range(2), dtype=m_types
)
ratings = pd.merge(movies, ratings)
ratings.head()
"ratings.dat"
1::1287::5::978302039
1::2804::5::978300719
1::594::4::978302268
1::919::4::978301368
1::595::5::978824268
Hata Çıktı:
---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-19-a2649e528fb9> in <module>()
7 r'C:\\Users\\Admin\\OneDrive\\Documents\\_Learn!\\'
8 r'Learn Data Science\\Data Sets\\MovieLens\\ml-1m\\ratings.dat',
----> 9 sep='::', names=r_cols, usecols=range(3), dtype=r_types
10 )
11
C:\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, dialect, compression, doublequote, escapechar, quotechar, quoting, skipinitialspace, lineterminator, header, index_col, names, prefix, skiprows, skipfooter, skip_footer, na_values, true_values, false_values, delimiter, converters, dtype, usecols, engine, delim_whitespace, as_recarray, na_filter, compact_ints, use_unsigned, low_memory, buffer_lines, warn_bad_lines, error_bad_lines, keep_default_na, thousands, comment, decimal, parse_dates, keep_date_col, dayfirst, date_parser, memory_map, float_precision, nrows, iterator, chunksize, verbose, encoding, squeeze, mangle_dupe_cols, tupleize_cols, infer_datetime_format, skip_blank_lines)
496 skip_blank_lines=skip_blank_lines)
497
--> 498 return _read(filepath_or_buffer, kwds)
499
500 parser_f.__name__ = name
C:\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
273
274 # Create the parser.
--> 275 parser = TextFileReader(filepath_or_buffer, **kwds)
276
277 if (nrows is not None) and (chunksize is not None):
C:\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
584
585 # might mutate self.engine
--> 586 self.options, self.engine = self._clean_options(options, engine)
587 if 'has_index_names' in kwds:
588 self.options['has_index_names'] = kwds['has_index_names']
C:\Anaconda3\lib\site-packages\pandas\io\parsers.py in _clean_options(self, options, engine)
663 msg += " (Note the 'converters' option provides"\
664 " similar functionality.)"
--> 665 raise ValueError(msg)
666 del result[arg]
667
ValueError: Falling back to the 'python' engine because the 'c' engine does not support regex separators, but this causes 'dtype' to be ignored as it is not supported by the 'python' engine. (Note the 'converters' option provides similar functionality.)
Bir tek vardır ":" veri alanı içinde.Bu nedenle, Python bir C hatası atmaya devam ediyor: "12 satırında 5 alan bekleniyor, 6" gördüm. Bununla başa çıkacak bir şey var mı? – Cloud
Bu noktada, muhtemelen bir metin düzenleyicideki veri dosyasını açabilirim, bkz. dosyadaki herhangi bir virgül veya yarı-virgül ve ',' ile '-' için bir-yerine koy. Tabii ki dosyaya erişimim var. – Evert
@Cloud Durumunuz hakkında Pandas posta listesinde ('önlemek' nasıl) '' '' düzenli bir ifade olarak yorumlanırken, bunu test ettiğimde ters eğiklikler çalışmadı ya da Pandas github'da bir sorunla karşılaşmak isteyebilirsiniz. sayfa. – Evert