У меня есть следующие данные CSV, data.csv
. Следует отметить, что CSV-файл правильно отформатирован и не содержит никаких «странных» вещей.
id,date,time,name,value,description
0,2017-01-07,2017-01-07 11:49:29,cool_name1,2,something
1,2017-01-07,2017-01-07 11:51:50,cool_name1,-1,something
2,2017-01-07,2017-01-07 14:03:42,cool_name2,9,something
Я прочитал это через:
schema = {'id': float,
'date': str,
'time': str,
'name': str,
'value': float,
'description': str}
df = pd.read_csv('data.csv', header=0, dtype=schema,
parse_dates=['date', 'time'])
, что приводит к df.dtypes
:
id int64
date datetime64[ns]
time datetime64[ns]
name object
value float64
description object
В зависимости от того, куда направляются данные, id
должен быть автоматически проанализирован, как указано schema
(float
в данном случае). Однако, попробовав несколько разных аргументов ключевых слов в сочетании друг с другом, я не могу заставить id
подчиниться моему dtype
.
Список того, что я пробовал:
dtype=schema
converters=schema
low_memory=False
engine='c' AND 'python'
index_col=False
parse_dates=False
Следует отметить, что столбец value
подчиняется dtype
, и без него он становится int64
.
Что такое недостающий ингредиент (версия для панд 0.23.4)?