Фрейм данных Python Pandas — это двумерная структура данных, в которой данные выровнены в табличной форме по строкам и столбцам. DataFrame — это двумерная потенциально составная структура табличных данных с изменяемым размером и помеченными осями (строки и столбцы). В этом примере мы увидим разные способы перебора всех или определенных столбцов фрейма данных.
Pandas перебирают столбцы
Python Pandas DataFrame состоит из строк и столбцов, поэтому для итерации DataFrame мы должны выполнять итерацию DataFrame как словаря. В словаре мы перебираем ключи объекта так же, как и в Dataframe.
В Pandas Dataframe мы можем перебирать элемент двумя способами:
- Итерации по строкам
- Итерации по столбцам
Давайте создадим Сначала DataFrame.
# app.pyimport pandas as pdtigerking = [('Joe', 'Exotic', 7) , ('Кэрол', 'Баскин', 7), ('Ховард', 'Баскин', 6), ('Джон', 'Финли', 6), ('Бхагаван', 'Антл', 6),] df = pd.DataFrame (tigerking, columns = ['Имя', 'Фамилия', 'Всего эпизодов']) print (df)
Вывод
python3 app.py Имя Фамилия Всего эпизодов0 Джо Экзотик 71 Кэрол Баскин 72 Ховард Баскин 63 Джон Финли 64 Бхагаван Антл 6
Итерировать столбцы в Dataframe с использованием имен столбцов
DataFrame.columns возвращает последовательность имен столбцов.
Мы можем перебирать эти имена столбцов, и для каждого имени столбца мы можем выбирать содержимое столбца по имени столбца.
См. следующий код.
# app.pyimport pandas as pdtigerking = [('Joe', 'Exotic', 7), ('Carole', ' Baskin ', 7), (' Howard ',' Baskin ', 6), (' John ',' Finlay ', 6), (' Bhagavan ',' Antle ', 6),] df = pd.DataFrame (тигр , columns = ['First Name', 'Last Name', 'Total Episodes']) для столбца в df: # Выберите содержимое столбца по имени столбца с помощью оператора [] columnObj = dfprint ( 'Colunm Name:', column) print ('Column Contents:', columnObj.values)
Вывод
приложение python3 .pyColunm Имя: ИмяСодержание столбца: ['Joe' 'Carole' 'Howard' 'John' 'Bhagavan'] Имя столбца: ФамилияСодержание столбца: ['Exotic' 'Baskin' 'Baskin' 'Finlay' 'Antle'] Colunm Название: Всего эпизодов. Содержание столбца: [7 7 6 6 6]
Если вы проанализируете вывод, то сначала вы увидите, что мы получили имя столбца, а затем мы получили содержимое столбцов в виде списка.
В этом подходе вам не нужно использовать какой-либо метод для итерации столбцов. В следующем подходе мы увидим функцию для итерации столбцов.
Как итерировать столбцы с помощью DataFrame.iteritems ()
Класс DataFrame предоставляет функцию-член iteritems () . Он дает итератор, который можно использовать для перебора всех столбцов фрейма данных.
Для каждого столбца в DataFrame он возвращает итератор в кортеж, содержащий имя столбца и содержимое столбца как Series.
DataFrame iteritems ( ) используется для итератора по парам (имя столбца, серия).
Он выполняет итерацию по столбцам DataFrame , возвращая кортеж с именем столбца и содержимым в виде серии.
Имена столбцов для DataFrame перебираются.
Давайте применим функцию Pandas DataFrame iteritems ().
# app.pyimport pandas as pdtigerking = [('Joe', 'Exotic', 7), ('Carole', 'Baskin', 7), ('Howard', 'Baskin', 6 ), ('John', 'Finlay', 6), ('Bhagavan', 'Antle', 6),] df = pd.DataFrame (tigerking, columns = ['First Name', 'Last Name', 'Total Эпизоды ']) для (columnName, columnData) в df.iteritems (): print (' Colunm Name: ', columnName) print (' Column Values: ', columnData.values)
Вывод
Имя столбца: Имя Значения столбца: ['Joe' 'Carole' 'Howard' 'John' 'Bhagavan'] Имя столбца: Фамилия Значения столбца: [' Exotic '' Baskin '' Baskin '' Finlay '' Antle '] Название столбца: Всего эпизодов. Значения столбца: [7 7 6 6 6]
Здесь вы видите, что мы получаем первый столбец имя, а затем получить список значений этого столбца.
Как перебирать определенные столбцы в DataFrame
Допустим, у нас есть сценарий, в котором мы должны выбрать эти столбцы только из DataFrame, а затем перебрать их. Давайте займемся этой проблемой.
# app.pyimport pandas as pdtigerking = [('Joe', 'Exotic', 7), ('Carole', 'Baskin', 7), ('Howard ',' Baskin ', 6), (' John ',' Finlay ', 6), (' Bhagavan ',' Antle ', 6),] df = pd.DataFrame (tigerking, columns = [' First Name ', 'Last Name', 'Total Episodes']) для столбца в df [['First Name', 'Total Episodes']]: # Выберите содержимое столбца по имени столбца с помощью оператора [] columnsObj = dfprint ('Имя столбца:', столбец) print ('Содержимое столбца:', columnsObj.values)
Вывод
приложение python3. Имя pyColunm: ИмяСодержание столбца: ['Joe' 'Carole' 'Howard' 'John' 'Bhagavan'] Имя столбца: Всего эпизодовСодержание столбца: [7 7 6 6 6]
Мы выбрали два столбца, а на выходе мы получили два столбца с их значениями.
Итерировать столбцы в кадре данных по индексу с помощью iloc []
Мы можем перебирать столбцы фрейма данных, используя индекс.
Например, мы можем перебирать диапазон, т.е. от 0 до максимального количества столбцов; затем для каждого индекса мы можем выбрать содержимое столбца с помощью iloc [].
См. следующий код.
# app.pyimport pandas как pdtigerking = [( 'Джо', 'Экзотика', 7), ('Кэрол', 'Баскин', 7), ('Ховард', 'Баскин', 6), ('Джон', 'Финли', 6), ('Бхагаван ',' Antle ', 6),] df = pd.DataFrame (tigerking, columns = [' First Name ',' Last Name ',' Total Episodes ']) для индекса в диапазоне (df.shape [1]): print ('Номер столбца:', index) # Выбрать столбец по позиции индекса с помощью iloc [] columnsObj = df.iloc [:, index] print ('Column Contents:', columnsObj.values)
Вывод
python3 app.pyНомер столбца: 0Содержание столбца: ['Joe' 'Carole' 'Howard' 'John' 'Bhagavan'] Номер столбца: 1Column Содержание: ['Exotic' 'Baskin' 'Baskin' 'Finlay' 'Antle'] Номер столбца: 2Содержание столбца: [7 7 6 6 6]
В приведенном выше коде мы не вывести имя столбца, но вместо этого мы напечатали индекс столбца, а затем содержимое столбца.
Наконец, Pa ndas перебирать столбцы, пример завершен.
См. также
Pandas DataFrame.filter ()
Pandas DataFrame.transpose ()
Pandas DataFrame dropna ()