Это терпит неудачу, потому что 2:4
недействителен синтаксис для доступа к ключам/Столбцы ДФ:
In [73]:
df[[2:4]]
File "<ipython-input-73-f0f09617b349>", line 1
df[[2:4]]
^
SyntaxError: invalid syntax
Это ничем не отличается, если вы определен dict и попробовал тот же синтаксис:
In [74]:
d = {0:0,1:1,2:2,3:3,4:4,5:5}
d
Out[74]:
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
In [76]:
d[[2:4]]
File "<ipython-input-76-ea5d68adc389>", line 1
d[[2:4]]
^
SyntaxError: invalid syntax
[]
синтаксис используется для доступа к ярлыкам столбцов, которые соответствуют, вы не можете передавать фрагмент в списке для доступа к диапазону столбцов, как это, он должен быть списком значений, как вы уже нашли.
Новее методы, такие как iloc
, ix
и loc
ломтика поддержка диапазонов
то, что работало для вас, изначально выбраны столбцы, используя метки в списке:
In [77]:
df[[2,3,4]]
Out[77]:
2 3 4
0 3 4 5
1 3 4 5
2 3 4 5
3 3 4 5
4 3 4 5
а затем выбирается строки с помощью кусочка:
In [79]:
df[[2,3,4]][2:4]
Out[79]:
2 3 4
2 3 4 5
3 3 4 5
классный, спасибо за это jezrael –
Извините, мой коалиг приходит ко мне. Теперь я вижу второй ответ, я думаю, что это очень хорошее объяснение. Я считаю, что лучше всего использовать такие функции, как ['ix'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.ix.html), [' iloc'] (http : //pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iloc.html) или ['loc'] (http://pandas.pydata.org/pandas-docs/stable/generated/ pandas.DataFrame.loc.html). – jezrael