的錯誤是:
In [67]: np.recfromtxt('stack40765849.txt', delimiter=';', dtype=str)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-67-eab6d3192d4d> in <module>()
----> 1 np.recfromtxt('stack40765849.txt', delimiter=';', dtype=str)
/usr/lib/python3/dist-packages/numpy/lib/npyio.py in recfromtxt(fname, **kwargs)
1949 kwargs.setdefault("dtype", None)
1950 usemask = kwargs.get('usemask', False)
-> 1951 output = genfromtxt(fname, **kwargs)
1952 if usemask:
1953 from numpy.ma.mrecords import MaskedRecords
...
ValueError: Some errors were detected !
Line #2 (got 4 columns instead of 3)
(注意,recfromtxt
是使用genfromtxt
,它討論了很多
問題不在於字符串的長度,而在於分隔符的數量。第一行(一個heade r?)有2個,表明你想要3列或者字段。但第二行有3個;額外的可能是文本的一部分。
識別第一行的字段名稱會導致相同的錯誤。
np.recfromtxt('stack40765849.txt', delimiter=';', dtype=str,names=True)
pandas
負載的情況下爲:
In [74]: data=pandas.read_csv('stack40765849.txt',delimiter=';')
In [75]: data
Out[75]:
Name Birthdate \
John 1990 Lorem ipsum dolor sit amet, consectetur adipi...
Biography
John Quae diligentissime contra Aristonem dicuntur...
它不給一個錯誤,但它看起來不正確。
==================
如果我在文本改變;
到.
In [82]: np.genfromtxt('stack40765849_1.txt', delimiter=';', dtype=None,names=Tr
...: ue)
Out[82]:
array((b'John', 1990, b' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Hanc ergo intuens debet institutum illud quasi signum absolvere. Scrupulum, inquam, abeunti. Quae diligentissime contra Aristonem dicuntur a Chryippo. Quo tandem modo?'),
dtype=[('Name', 'S4'), ('Birthdate', '<i4'), ('Biography', 'S225')])
我得到一個結構數組(幾乎像一個recarray)與3個領域;最後是很長的 - 全文。 (b'...'
表示Py3中的一個字節字符串;它不會出現在Py2顯示中。)
pandas
產生類似的東西:
In [83]: data=pandas.read_csv('stack40765849_1.txt',delimiter=';')
In [84]: data
Out[84]:
Name Birthdate Biography
0 John 1990 Lorem ipsum dolor sit amet, consectetur adipi...
正確PY3 unicode的負荷:
In [91]: np.recfromtxt('stack40765849_1.txt', delimiter=';', dtype='U4,i,U255',n
...: ames=True)
Out[91]:
rec.array(('John', 1990, ' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Hanc ergo intuens debet institutum illud quasi signum absolvere. Scrupulum, inquam, abeunti. Quae diligentissime contra Aristonem dicuntur a Chryippo. Quo tandem modo?'),
dtype=[('Name', '<U4'), ('Birthdate', '<i4'), ('Biography', '<U255')])
In [92]:
你說的是什麼樣的_problems_的?你應該澄清一點。 – Lafexlos
'recfromtxt'使用更常見的'genfromtxt'。第一行有2個分隔符。第二個有3.你期望有多少個領域? – hpaulj