Чтобы получить более ясность, давайте посмотрим на DataFrame с двумя уровнями в его индексе (MultiIndex).
index = pd.MultiIndex.from_product([['TX', 'FL', 'CA'],
['North', 'South']],
names=['State', 'Direction'])
df = pd.DataFrame(index=index,
data=np.random.randint(0, 10, (6,4)),
columns=list('abcd'))
Метод reset_index
, вызываемый параметрами по умолчанию, преобразует все индексы в столбцы и использует простой RangeIndex
в качестве нового индекса.
df.reset_index()
Используйте параметр level
для управления тем, какие уровни индексов преобразуются в столбцы. Если возможно, используйте имя уровня, которое является более явным. Если имена уровней отсутствуют, вы можете ссылаться на каждый уровень по его целочисленному местоположению, которое начинается с 0 извне. Вы можете использовать скалярное значение здесь или список всех индексов, которые вы хотели бы сбросить.
df.reset_index(level='State') # same as df.reset_index(level=0)
В редком случае, когда вы хотите сохранить индекс и превратить индекс в столбец, вы можете сделать следующее:
# for a single level
df.assign(State=df.index.get_level_values('State'))
# for all levels
df.assign(**df.index.to_frame())
В прошлом семестре моего продвинутого курса разработки iPhone я посвятил целый класс рисованию в кварцевом 2D. Видео для этого доступно на iTunes U вместе с остальными участниками класса. Примечания к этому сеансу можно найти здесь , и я создал пример приложения , чтобы продемонстрировать некоторые более сложные концепции рисования кварца.
Кроме того, я настоятельно рекомендую прочитать Руководство по программированию Quartz 2D .
Начните с демонстрационного проекта Apple Quartz2D . Скомпилируйте его, запустите на своем устройстве, прочтите код, пока используете демонстрационные версии в приложении.