Вместо преобразования после загрузки, которая является интенсивной операцией с памятью.Вы можете указать, что десятичный разделитель соответствует европейскому стилю, передав параметр decimal=','
в read_csv
:
pd.read_csv(FILENAME, decimal=',')
Пример:
In[24]:
t="""data
86,2600
20,2800
123,5000
30,7500
8,3600"""
df = pd.read_csv(io.StringIO(t), decimal=',', sep=';')
df
Out[24]:
data
0 86.26
1 20.28
2 123.50
3 30.75
4 8.36
Обратите внимание, чтоЯ передаю sep=';'
, в противном случае он будет восприниматься как 2 столбца, поскольку разделителем по умолчанию является запятая.
Мы можем видеть, что вывод показывает, что он десятичный, и мы можем подтвердить dtype
, используя .info()
:
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 1 columns):
data 5 non-null float64
dtypes: float64(1)
memory usage: 120.0 bytes