Ответ 1
ОБНОВИТЬ
Я думаю, что начиная с версии 0.16.1, теперь возникнет ошибка, если вы попытаетесь передать True
для index_col
чтобы избежать этой неоднозначности
ОРИГИНАЛ
Многие люди смущаются этим, чтобы указать порядковый индекс вашего столбца, вы должны передать позицию int в этом случае 0
.
In [3]:
import io
import pandas as pd
t="""index,a,b
0,hello,pandas"""
pd.read_csv(io.StringIO(t))
Out[3]:
index a b
0 0 hello pandas
Значением по умолчанию является index_col=None
как показано выше.
Если мы устанавливаем index_col=0
мы явно заявляем, что первый столбец следует рассматривать как индекс:
In [4]:
pd.read_csv(io.StringIO(t), index_col=0)
Out[4]:
a b
index
0 hello pandas
Если мы передадим index_col=False
мы получим тот же результат, что и None
:
In [5]:
pd.read_csv(io.StringIO(t), index_col=False)
Out[5]:
index a b
0 0 hello pandas
Если мы теперь index_col=None
мы получим то же поведение, что и когда мы не передали этот параметр:
In [6]:
pd.read_csv(io.StringIO(t), index_col=None)
Out[6]:
index a b
0 0 hello pandas
Существует ошибка, при которой, если вы передадите True
это было ошибочно преобразовано в index_col=1
поскольку True
было преобразовано в 1
:
In [6]:
pd.read_csv(io.StringIO(t), index_col=True)
Out[6]:
index b
a
0 hello pandas
РЕДАКТИРОВАТЬ
Для случая, когда у вас есть пустой столбец индекса, который у вас есть:
In [7]:
import io
import pandas as pd
t=""",a,b
0,hello,pandas"""
pd.read_csv(io.StringIO(t))
Out[7]:
Unnamed: 0 a b
0 0 hello pandas
In [8]:
pd.read_csv(io.StringIO(t), index_col=0)
Out[8]:
a b
0 hello pandas
In [9]:
pd.read_csv(io.StringIO(t), index_col=False)
Out[9]:
Unnamed: 0 a b
0 0 hello pandas
In [10]:
pd.read_csv(io.StringIO(t), index_col=None)
Out[10]:
Unnamed: 0 a b
0 0 hello pandas