1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/it-ebooks-pandas-cookbook-code-notes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
4.md 8.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 01:15 e628503

Перевод текста на русский язык:

In[15]: pd.options.display.max_rows = 6
 In[16]: college.iloc[60]
Out[16]: 
![](img/6c8c636e0bdc2ff536bd5035cd6ce5bc.png)
# Также можно выбрать строку по метке
 In[17]: college.loc['University of Alaska Anchorage']
Out[17]: CITY                  Anchorage
         STABBR                       AK
         HBCU                          0
                                     ...    
         UG25ABV                  0.4386
         MD_EARN_WNE_P10           42500
         GRAD_DEBT_MDN_SUPP      19449.5
         Name: University of Alaska Anchorage, Length: 26, dtype: object 
# Выбрать несколько несмежных строк
 In[18]: college.iloc[[60, 99, 3]]
Out[18]: 
![](img/b80cc0338b2b949766d8298177c49b8f.png)
# Можно также использовать loc с списком для выбора
 In[19]: labels = ['University of Alaska Anchorage',
                   'International Academy of Hair Design',
                   'University of Alabama in Huntsville']
         college.loc[labels]
Out[19]: 
![](img/16e86f040873abe31d8ea2779b493dc5.png)
# iloc можно использовать для непрерывного выбора среза
 In[20]: college.iloc[99:102]
Out[20]: 
![](img/c91c6bb231252b3f6936722d05ae6b0c.png)
# loc можно использовать для выбора среза по меткам
 In[21]: start = 'International Academy of Hair Design'
         stop = 'Mesa Community College'
         college.loc[start:stop]
Out[21]: 
![](img/8e2c99415873deefa73466f74914572e.png)

Больше

# .index.tolist() можно напрямую извлечь метки индексов, создав список
 In[22]: college.iloc[[60, 99, 3]].index.tolist()
Out[22]: ['University of Alaska Anchorage',
          'International Academy of Hair Design',
          'University of Alabama in Huntsville'] 

3. Одновременный выбор строк и столбцов DataFrame

# Чтение данных колледжа, присвоение индексу имени INSTNM; выбор первых трёх строк и первых четырёх столбцов
 In[23]: college = pd.read_csv('data/college.csv', index_col='INSTNM')
         college.iloc[:3, :4]
Out[23]: 
![](img/65ef1ade85b0b4645b6e086c29efaea0.png)
# Использовать loc для реализации той же функции
 In[24]: college.loc[:'Amridge University', :'MENONLY']
Out[24]: 
![](img/c7d3f23ac74506435b2af6aa1763ba34.png)
# Выбор двух столбцов всех строк
 In[25]: college.iloc[:, [4,6]].head()
Out[25]: 
![](img/1cb28b6e50b884a0baaac59575e47fa5.png)
# Реализовать ту же функцию с помощью loc
 In[26]: college.loc[:, ['WOMENONLY', 'SATVRMID']]
Out[26]: 
![](img/aee83b2d4b92827d07d9deed0a896cf3.png)
# Выбирать несмежные строки и столбцы
 In[27]: college.iloc[[100, 200], [7, 15]]
Out[27]: 
![](img/04ce563b0cb4106e028fd0ad1d5d26d8.png)
# Использование loc и списков для выбора несмежных строк и столбцов
 In[28]: rows = ['GateWay Community College', 'American Baptist Seminary of the West']
         columns = ['SATMTMID', 'UGDS_NHPI']
         college.loc[rows, columns]
Out[28]: 
![](img/fb3cbcce83e2ffbf48f7f1cb44c6c1d9.png)
# Выбрать одну строку и один столбец с помощью iloc
 In[29]: college.iloc[5, -4]
Out[29]: 0.40100000000000002 
# Выбрать один элемент с помощью loc
 In[30]: college.loc['The University of Alabama', 'PCTFLOAN']
Out[30]: 0.40100000000000002 
# Выбрать срез строк с помощью iloc и только один столбец
 In[31]: college.iloc[90:80:-2, 5]
Out[31]: INSTNM
         Empire Beauty School-Flagstaff     0
         Charles of Italy Beauty College    0
         Central Arizona College            0
         University of Arizona              0
         Arizona State University-Tempe     0
         Name: RELAFFIL, dtype: int64 
# Выбрать срез строк с помощью loc и только один столбец
 In[32]: start = 'Empire Beauty School-Flagstaff'
         stop = 'Arizona State University-Tempe'
         college.loc[start:stop:-2, 'RELAFFIL']
Out[32]: INSTNM
         Empire Beauty School-Flagstaff     0
         Charles of Italy Beauty College    0
         Central Arizona College            0
         University of Arizona              0
         Arizona State University-Tempe     0
         Name: RELAFFIL, dtype: int64 

4. Использование целых чисел и меток для выборки данных

# Читать данные колледжа, индекс назван INSTNM
 In[33]: college = pd.read_csv('data/college.csv', index_col='INSTNM')
# Найти позицию столбца с помощью метода get_loc, начиная с «UGDS_WHITE» и заканчивая «UGDS_UNKN»
 In[34]: col_start = college.columns.get_loc('UGDS_WHITE')
         col_end = college.columns.get_loc('UGDS_UNKN') + 1
         col_start, col_end
Out[34]: (10, 19)
# Выбрать непрерывные столбцы с помощью среза
 In[35]: college.iloc[:5, col_start:col_end]
Out[35]: 
![](img/ab7bab0855ab6cad239230856714bd7b.png) ```
TypeError: unhashable type: 'slice'
# 只能用.loc和.iloc选取
In[56]: first_ten_instnm = college.index[:10]
college.loc[first_ten_instnm, ['CITY', 'STABBR']]
Out[56]:

7. Попытка выбрать школы в алфавитном порядке между «Sp» и «Su» приводит к ошибке:

# Чтение данных из файла college.csv; попытка выбрать школы, чьи названия находятся в диапазоне от ‘Sp’ до ‘Su’
In[57]: college = pd.read_csv('data/college.csv', index_col='INSTNM')
college.loc['Sp':'Su']
ValueError: index must be monotonic increasing or decreasing

Во время обработки указанного исключения возникло другое исключение:


Перевод выполнен с учётом контекста запроса. ``` -> 3450 return self.get_loc(key) 3451 3452 def get_slice_bound(self, label, side, kind):

/Users/Ted/anaconda/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 2442 return self._engine.get_loc(key) 2443 except KeyError: -> 2444 return self._engine.get_loc(self._maybe_cast_indexer(key)) 2445 2446 indexer = self.get_indexer([key], method=method, tolerance=tolerance)

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc (pandas/_libs/index.c:5280)()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc (pandas/_libs/index.c:5126)()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas/_libs/hashtable.c:20523)()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item (pandas/_libs/hashtable.c:20477)()

KeyError: 'Sp'


```py
# Сортировка колледжа
In[58]: college = college.sort_index()
In[59]: college = college.head()
Out[59]

# Попытка выбрать школы в алфавитном порядке между «Sp» и «Su»
In[60]: pd.options.display.max_rows = 6
In[61]: college.loc['Sp':'Su']
Out[61]

# Можно использовать is_monotonic_increasing или is_monotonic_decreasing для проверки порядка сортировки по алфавиту
In[62]: college = college.sort_index(ascending=False)
college.index.is_monotonic_decreasing
Out[62]: True
# Выбор в обратном алфавитном порядке
In[63]: college.loc['E':'B']
Out[63]

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/it-ebooks-pandas-cookbook-code-notes.git
git@api.gitlife.ru:oschina-mirror/it-ebooks-pandas-cookbook-code-notes.git
oschina-mirror
it-ebooks-pandas-cookbook-code-notes
it-ebooks-pandas-cookbook-code-notes
master