
12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
М141БПЛТЛ066 10 М141БПЛТЛ043 5 М141БПЛТЛ084 7 М141БПЛТЛ005 7 М141БПЛТЛ044 5 13051038 4
Name: Mstat, dtype: int64
Ещё столбец можно выбрать, не используя квадратные скобки, а просто указав его название через точку:
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
11/42 |

12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
In [22]:
df.Mstat
Out[22]:
id
М141БПЛТЛ024 9 М141БПЛТЛ031 10 М141БПЛТЛ075 9 М141БПЛТЛ017 9 М141БПЛТЛ069 10 М141БПЛТЛ072 9 М141БПЛТЛ020 7 М141БПЛТЛ026 10 М141БПЛТЛ073 9 М141БПЛТЛ078 6 М141БПЛТЛ060 8 М141БПЛТЛ040 9 М141БПЛТЛ065 9 М141БПЛТЛ053 7 М141БПЛТЛ015 9 М141БПЛТЛ021 9 М141БПЛТЛ018 7 М141БПЛТЛ039 8 М141БПЛТЛ036 10 М141БПЛТЛ049 7 06114043 8 М141БПЛТЛ048 6 М141БПЛТЛ034 9 М141БПЛТЛ045 8 М141БПЛТЛ033 9 М141БПЛТЛ083 5 М141БПЛТЛ008 8 М141БПЛТЛ001 7 М141БПЛТЛ038 9 М141БПЛТЛ052 7 М141БПЛТЛ011 6 М141БПЛТЛ004 7 М141БПЛТЛ010 6 М141БПЛТЛ071 9 М141БПЛТЛ035 6 М141БПЛТЛ030 6 М141БПЛТЛ070 5 М141БПЛТЛ051 9 М141БПЛТЛ046 7 М141БПЛТЛ047 8 М141БПЛТЛ063 5 М141БПЛТЛ029 8 М141БПЛТЛ064 8 М141БПЛТЛ076 7 М141БПЛТЛ062 7 М141БПЛТЛ074 6 130232038 7 М141БПЛТЛ023 9 М141БПЛТЛ054 8 М141БПЛТЛ012 6 М141БПЛТЛ006 5 М141БПЛТЛ055 5 М141БПЛТЛ007 7 М141БПЛТЛ050 6
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
12/42 |
12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
М141БПЛТЛ066 10 М141БПЛТЛ043 5 М141БПЛТЛ084 7 М141БПЛТЛ005 7 М141БПЛТЛ044 5 13051038 4
Name: Mstat, dtype: int64
Однако такой способ не универсален. В случае, если в названии столбца используются недопустимые для переменных символы (пробелы, тире, кириллические буквы), этот метод не подойдет.
Если нам нужно выбрать более одного столбца, то названия столбцов указываются внутри списка – появляются двойные квадратные скобки:
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
13/42 |

12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
In [23]:
df2[["Soc", "Polsoc"]]
Out[23]:
|
Soc |
Polsoc |
id |
|
|
|
|
|
М141БПЛТЛ024 |
8 |
9 |
М141БПЛТЛ031 |
10 |
10 |
М141БПЛТЛ075 |
9 |
9 |
М141БПЛТЛ017 |
8 |
9 |
М141БПЛТЛ069 |
10 |
9 |
М141БПЛТЛ072 |
8 |
9 |
М141БПЛТЛ020 |
7 |
9 |
М141БПЛТЛ026 |
8 |
8 |
М141БПЛТЛ073 |
8 |
9 |
М141БПЛТЛ078 |
9 |
9 |
М141БПЛТЛ060 |
7 |
8 |
М141БПЛТЛ040 |
8 |
8 |
М141БПЛТЛ065 |
8 |
10 |
М141БПЛТЛ053 |
7 |
8 |
М141БПЛТЛ015 |
7 |
7 |
М141БПЛТЛ021 |
8 |
6 |
М141БПЛТЛ018 |
9 |
8 |
М141БПЛТЛ039 |
9 |
9 |
М141БПЛТЛ036 |
7 |
7 |
М141БПЛТЛ049 |
6 |
9 |
06114043 |
10 |
9 |
М141БПЛТЛ048 |
8 |
8 |
М141БПЛТЛ034 |
7 |
6 |
М141БПЛТЛ045 |
8 |
8 |
М141БПЛТЛ033 |
8 |
8 |
М141БПЛТЛ083 |
6 |
7 |
М141БПЛТЛ008 |
8 |
9 |
М141БПЛТЛ001 |
7 |
8 |
М141БПЛТЛ038 |
6 |
8 |
М141БПЛТЛ052 |
7 |
7 |
М141БПЛТЛ011 |
8 |
7 |
М141БПЛТЛ004 |
6 |
6 |
М141БПЛТЛ010 |
7 |
8 |
М141БПЛТЛ071 |
7 |
7 |
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
14/42 |
12.11.2022, 11:38 |
|
|
10. Датафреймы pandas - Jupyter Notebook |
|
|
|
Soc |
Polsoc |
|
|
id |
|
|
|
|
|
|
|
|
|
М141БПЛТЛ035 |
7 |
7 |
|
|
М141БПЛТЛ030 |
6 |
5 |
|
|
М141БПЛТЛ070 |
6 |
5 |
|
|
М141БПЛТЛ051 |
8 |
6 |
|
|
М141БПЛТЛ046 |
7 |
7 |
|
|
М141БПЛТЛ047 |
6 |
6 |
|
|
М141БПЛТЛ063 |
6 |
5 |
|
|
М141БПЛТЛ029 |
8 |
8 |
|
|
М141БПЛТЛ064 |
6 |
4 |
|
|
М141БПЛТЛ076 |
8 |
8 |
|
|
М141БПЛТЛ062 |
7 |
6 |
|
|
М141БПЛТЛ074 |
7 |
8 |
|
130232038 |
6 |
5 |
|
|
|
М141БПЛТЛ023 |
6 |
7 |
|
|
М141БПЛТЛ054 |
6 |
8 |
|
|
М141БПЛТЛ012 |
7 |
7 |
|
|
М141БПЛТЛ006 |
6 |
7 |
|
|
М141БПЛТЛ055 |
6 |
6 |
|
|
М141БПЛТЛ007 |
7 |
6 |
|
|
М141БПЛТЛ050 |
6 |
6 |
|
|
М141БПЛТЛ066 |
7 |
6 |
|
|
М141БПЛТЛ043 |
6 |
5 |
|
|
М141БПЛТЛ084 |
8 |
4 |
|
|
М141БПЛТЛ005 |
5 |
5 |
|
|
М141БПЛТЛ044 |
7 |
4 |
|
13051038 |
4 |
4 |
|
Если нам нужно несколько столбцов подряд, начиная с одного названия и заканчивая другим, можно воспользоваться методом .loc :
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
15/42 |

12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
In [24]:
df.loc[:, 'Econ' : 'Law']
Out[24]:
|
Econ |
Eng |
Polth |
Mstat2 |
Phist |
Law |
id |
|
|
|
|
|
|
|
|
|
|
|
|
|
М141БПЛТЛ024 |
8 |
9 |
8 |
10 |
8.0 |
7 |
М141БПЛТЛ031 |
10 |
10 |
10 |
10 |
9.0 |
9 |
М141БПЛТЛ075 |
10 |
9 |
10 |
9 |
8.0 |
9 |
М141БПЛТЛ017 |
8 |
9 |
9 |
10 |
6.0 |
9 |
М141БПЛТЛ069 |
10 |
10 |
10 |
9 |
8.0 |
8 |
М141БПЛТЛ072 |
10 |
9 |
8 |
9 |
8.0 |
8 |
М141БПЛТЛ020 |
6 |
9 |
10 |
8 |
8.0 |
7 |
М141БПЛТЛ026 |
7 |
10 |
7 |
9 |
8.0 |
8 |
М141БПЛТЛ073 |
8 |
9 |
8 |
9 |
8.0 |
8 |
М141БПЛТЛ078 |
5 |
6 |
10 |
7 |
6.0 |
8 |
М141БПЛТЛ060 |
7 |
9 |
8 |
8 |
5.0 |
7 |
М141БПЛТЛ040 |
6 |
9 |
7 |
8 |
6.0 |
9 |
М141БПЛТЛ065 |
4 |
8 |
8 |
7 |
9.0 |
8 |
М141БПЛТЛ053 |
5 |
9 |
8 |
7 |
8.0 |
8 |
М141БПЛТЛ015 |
6 |
9 |
7 |
9 |
4.0 |
7 |
М141БПЛТЛ021 |
8 |
9 |
8 |
8 |
7.0 |
7 |
М141БПЛТЛ018 |
7 |
9 |
7 |
8 |
6.0 |
6 |
М141БПЛТЛ039 |
8 |
8 |
8 |
6 |
8.0 |
7 |
М141БПЛТЛ036 |
8 |
8 |
6 |
9 |
4.0 |
8 |
М141БПЛТЛ049 |
6 |
8 |
6 |
8 |
4.0 |
8 |
06114043 |
5 |
8 |
8 |
8 |
10.0 |
7 |
М141БПЛТЛ048 |
6 |
9 |
6 |
4 |
4.0 |
6 |
М141БПЛТЛ034 |
6 |
9 |
6 |
8 |
6.0 |
7 |
М141БПЛТЛ045 |
7 |
8 |
6 |
7 |
6.0 |
7 |
М141БПЛТЛ033 |
7 |
9 |
7 |
9 |
7.0 |
7 |
М141БПЛТЛ083 |
5 |
8 |
7 |
6 |
5.0 |
7 |
М141БПЛТЛ008 |
9 |
8 |
10 |
9 |
8.0 |
9 |
М141БПЛТЛ001 |
4 |
10 |
7 |
7 |
6.0 |
8 |
М141БПЛТЛ038 |
4 |
9 |
6 |
7 |
6.0 |
7 |
М141БПЛТЛ052 |
7 |
8 |
6 |
6 |
6.0 |
8 |
М141БПЛТЛ011 |
6 |
9 |
6 |
6 |
5.0 |
6 |
М141БПЛТЛ004 |
6 |
8 |
6 |
6 |
5.0 |
5 |
М141БПЛТЛ010 |
6 |
9 |
7 |
7 |
6.0 |
7 |
М141БПЛТЛ071 |
7 |
9 |
6 |
8 |
4.0 |
6 |
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
16/42 |
12.11.2022, 11:38 |
|
|
|
|
10. Датафреймы pandas - Jupyter Notebook |
|||
|
|
Econ |
Eng |
Polth |
Mstat2 |
Phist |
Law |
|
|
id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
М141БПЛТЛ035 |
6 |
8 |
5 |
5 |
4.0 |
6 |
|
|
М141БПЛТЛ030 |
6 |
7 |
6 |
6 |
4.0 |
8 |
|
|
М141БПЛТЛ070 |
4 |
8 |
6 |
5 |
5.0 |
6 |
|
|
М141БПЛТЛ051 |
6 |
8 |
7 |
6 |
7.0 |
6 |
|
|
М141БПЛТЛ046 |
4 |
7 |
5 |
8 |
5.0 |
7 |
|
|
М141БПЛТЛ047 |
4 |
7 |
5 |
9 |
5.0 |
6 |
|
|
М141БПЛТЛ063 |
4 |
8 |
4 |
4 |
4.0 |
5 |
|
|
М141БПЛТЛ029 |
7 |
9 |
5 |
6 |
7.0 |
6 |
|
|
М141БПЛТЛ064 |
7 |
6 |
6 |
8 |
4.0 |
6 |
|
|
М141БПЛТЛ076 |
6 |
8 |
6 |
6 |
6.0 |
8 |
|
|
М141БПЛТЛ062 |
6 |
9 |
6 |
6 |
5.0 |
6 |
|
|
М141БПЛТЛ074 |
4 |
7 |
6 |
5 |
6.0 |
6 |
|
130232038 |
5 |
8 |
4 |
8 |
4.0 |
8 |
|
|
|
М141БПЛТЛ023 |
8 |
9 |
6 |
9 |
4.0 |
7 |
|
|
М141БПЛТЛ054 |
4 |
8 |
6 |
4 |
4.0 |
6 |
|
|
М141БПЛТЛ012 |
4 |
10 |
6 |
5 |
4.0 |
7 |
|
|
М141БПЛТЛ006 |
5 |
8 |
5 |
5 |
5.0 |
6 |
|
|
М141БПЛТЛ055 |
4 |
7 |
7 |
4 |
8.0 |
5 |
|
|
М141БПЛТЛ007 |
6 |
7 |
6 |
7 |
4.0 |
5 |
|
|
М141БПЛТЛ050 |
6 |
8 |
4 |
5 |
4.0 |
5 |
|
|
М141БПЛТЛ066 |
7 |
9 |
5 |
8 |
4.0 |
6 |
|
|
М141БПЛТЛ043 |
5 |
8 |
5 |
6 |
5.0 |
6 |
|
|
М141БПЛТЛ084 |
4 |
8 |
5 |
5 |
NaN |
8 |
|
|
М141БПЛТЛ005 |
5 |
7 |
4 |
7 |
4.0 |
5 |
|
|
М141БПЛТЛ044 |
4 |
6 |
4 |
4 |
5.0 |
4 |
|
13051038 |
4 |
9 |
5 |
5 |
5.0 |
5 |
|
Откуда в квадратных скобках взялось двоеточие? Дело в том, что метод .loc – более универсальный, и позволяет выбирать не только столбцы, но и строки. При этом нужные строки указываются на первом месте, а столбцы – на втором. Когда мы пишем .loc[:, 1] , мы сообщаем Python, что нам нужны все строки ( : ) и столбцы, начиная с Econ и до Law включительно.
Внимание: выбор столбцов по названиям через двоеточие очень напоминает срезы (slices) в списках. Но есть важное отличие. В случае текстовых названий, оба конца среза (левый и правый) включаются. Если бы срезы по названиям были бы устроены как срезы по числовым индексам, код выше выдавал бы столбцы с Econ и до Phist , не включая колонку Law , так как в обычных срезах правый конец исключается.
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
17/42 |
12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
Выбор столбцов по номеру
Иногда может возникнуть необходимость выбрать столбец по его порядковому номеру. Например, когда названий столбцов нет как таковых или когда названия слишком длинные, а переименовывать их нежелательно. Сделать это можно с помощью метода .iloc :
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
18/42 |

12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
In [25]:
df.iloc[:, 1]
Out[25]:
id
М141БПЛТЛ024 9 М141БПЛТЛ031 10 М141БПЛТЛ075 9 М141БПЛТЛ017 9 М141БПЛТЛ069 10 М141БПЛТЛ072 9 М141БПЛТЛ020 7 М141БПЛТЛ026 10 М141БПЛТЛ073 9 М141БПЛТЛ078 6 М141БПЛТЛ060 8 М141БПЛТЛ040 9 М141БПЛТЛ065 9 М141БПЛТЛ053 7 М141БПЛТЛ015 9 М141БПЛТЛ021 9 М141БПЛТЛ018 7 М141БПЛТЛ039 8 М141БПЛТЛ036 10 М141БПЛТЛ049 7 06114043 8 М141БПЛТЛ048 6 М141БПЛТЛ034 9 М141БПЛТЛ045 8 М141БПЛТЛ033 9 М141БПЛТЛ083 5 М141БПЛТЛ008 8 М141БПЛТЛ001 7 М141БПЛТЛ038 9 М141БПЛТЛ052 7 М141БПЛТЛ011 6 М141БПЛТЛ004 7 М141БПЛТЛ010 6 М141БПЛТЛ071 9 М141БПЛТЛ035 6 М141БПЛТЛ030 6 М141БПЛТЛ070 5 М141БПЛТЛ051 9 М141БПЛТЛ046 7 М141БПЛТЛ047 8 М141БПЛТЛ063 5 М141БПЛТЛ029 8 М141БПЛТЛ064 8 М141БПЛТЛ076 7 М141БПЛТЛ062 7 М141БПЛТЛ074 6 130232038 7 М141БПЛТЛ023 9 М141БПЛТЛ054 8 М141БПЛТЛ012 6 М141БПЛТЛ006 5 М141БПЛТЛ055 5 М141БПЛТЛ007 7 М141БПЛТЛ050 6
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
19/42 |
12.11.2022, 11:38 |
10. Датафреймы pandas - Jupyter Notebook |
М141БПЛТЛ066 10 М141БПЛТЛ043 5 М141БПЛТЛ084 7 М141БПЛТЛ005 7 М141БПЛТЛ044 5 13051038 4
Name: Mstat, dtype: int64
Синтаксис кода с .iloc несильно отличается от синтаксиса .loc . В чем разница? Разница заключается в том, что метод .loc работает с текстовыми названиями, а метод .iloc – с числовыми индексами. Отсюда и префикс i в названии (i – индекс, loc – location). Если мы попытаемся в .iloc указать названия столбцов, Python выдаст ошибку:
127.0.0.1:8888/notebooks/EXONTOOLS/2/Доп. занятия/10. Датафреймы pandas.ipynb |
20/42 |