Я довольно новичок в использовании Pandas и, похоже, у меня возникли некоторые проблемы при загрузке таблицы из текстового файла.
Вот пример того, как выглядят данные:
# Header text
# Header text
# id col1 col2 col3 col4
0 0.44:66 0 1600 45.6e-3
1 0.25:7f 0 1600 52.1e-3
2 0.31:5e 0 1600 33.7e-3
...
2500 0.42.6f 0 1400 42.1e-3
# END
# Footer text
Я читаю это следующим образом:
import pandas as pd
with open(filename, 'rt') as f:
df = pd.read_table(f, skiprows=2, skipfooter=2, engine='python')
Тогда, когда я print(df.dtypes)
, я получаю следующее:
# id int64
col1 object
col2 int64
col3 int64
col4 float64
dtype: object
Это нормально, за исключением #
в названии первого столбца. Поэтому я попытался указать имена:
df = pd.read_table(f, skiprows=2, skipfooter=2, engine='python',
names=["id", "col1", "col2", "col3", "col4"])
но тогда я получаю print(df.dtypes)
id object
col1 object
col2 object
col3 object
col4 object
dtype: object
Итак, я попытался указать names
и dtypes
:
df = pd.read_table(f, skiprows=2, skipfooter=2, engine='python',
names=["id", "col1", "col2", "col3", "col4"],
dtypes={"id":int,"col1":str,"col2":int, "col3":int,"col4":float})
но это выдает ошибку:
ValueError: Unable to convert column id to type <class 'int'>
Что не так? Как я могу загрузить таблицу с колонкой names
, которую я хочу, и соответствующей dtypes
?