pandas.read_csv
может прочитать такой файл.Он позволяет вам управлять разделителем и символом десятичной точки.
Вот мой файл delim.dat
:
"1,000";"2,000";"3,000"
"5,000";"6,000";"7,000"
"8,000";"9,000";"9,100"
"9,250";"9,500";"9,990"
Используйте аргументы delimiter=';'
и decimal=','
в pandas.read_csv
:
In [11]: import pandas as pd
In [12]: df = pd.read_csv('delim.dat', sep=';', decimal=',', header=None)
In [13]: df
Out[13]:
0 1 2
0 1.00 2.0 3.00
1 5.00 6.0 7.00
2 8.00 9.0 9.10
3 9.25 9.5 9.99
Вы также можете использовать numpy.genfromtxt
, но вам придется использовать аргумент converters
для преобразования каждого поля из bytes
в число с плавающей запятой.Например,
In [54]: def myconvert(s):
...: return float(s.strip(b'"').replace(b',', b'.'))
...:
...:
In [55]: a = np.genfromtxt('delim.dat', delimiter=';', converters={k: myconvert for k in range(3)})
In [56]: a
Out[56]:
array([[1. , 2. , 3. ],
[5. , 6. , 7. ],
[8. , 9. , 9.1 ],
[9.25, 9.5 , 9.99]])