Перейти к содержимому

Как преобразовать столбец в список python

  • автор:

Pandas: как быстро преобразовать столбец в список

Вы можете использовать один из следующих методов для преобразования столбца в pandas DataFrame в список:

Способ 1: Используйте tolist()

df['my_column']. tolist () 

Способ 2: использовать список()

list(df['my_column']) 

Оба метода вернут один и тот же результат.

В следующих примерах показано, как использовать каждый из этих методов со следующими пандами DataFrame:

import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame print(df) team points assists 0 A 99 33 1 A 90 28 2 A 93 31 3 B 86 39 4 B 88 34 5 B 82 30 

Способ 1: преобразовать столбец в список с помощью tolist()

В следующем коде показано, как использовать функцию tolist() для преобразования столбца «точки» в DataFrame в список:

#convert column to list my_list = df['points']. tolist () #view list print(my_list) [99, 90, 93, 86, 88, 82] 

Мы можем подтвердить, что результатом является список, используя функцию type() :

#check data type type (my_list) list 

Способ 2: преобразовать столбец в список с помощью list()

В следующем коде показано, как использовать функцию list() для преобразования столбца «точки» в DataFrame в список:

#convert column to list my_list = list(df['points']) #view list print(my_list) [99, 90, 93, 86, 88, 82] 

Мы можем подтвердить, что результатом является список, используя функцию type() :

#check data type type (my_list) list 

Обратите внимание, что оба метода возвращают одинаковые результаты.

Обратите внимание, что для очень больших фреймов данных метод tolist() работает быстрее всего.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные функции со столбцами кадра данных pandas:

Значение столбца в список Pandas

Кусочек таблицы

Pandas, таблица. У меня есть значения в столбце ‘industry_type’ Я хочу преобразовать их, чтобы они разбились на: [‘Banking’, ‘E-Commerce’, ‘Internet’, ‘Mobile’, ‘Telecommunications’] для каждого ‘organizationID’ соответственно, но не знаю как это сделать. Для начала я удалила запятые, использовав:

cols = ['industry_type'] for col in cols: df[col] = df[col].str.replace(',', ' ') 

значения без запятых

Получила следующее: Чтобы преобразовать в строку столбец ‘industry_type’ использовала:

list_indus = df['industry_type'].tolist() 

Но в результате получаю: [‘Banking E-Commerce Internet Mobile Telecommunications’, ‘Advertising Internet Online Games Online Portals Social Media Marketing’. Только начинаю программировать и работать с pandas, подскажите пожалуйста, что нужно сделать, может цикл какой.

Отслеживать
задан 15 фев 2022 в 13:19
Olga Otinova Olga Otinova
1 1 1 бронзовый знак

Приведите пожалуйста в вопросе минимальный воспроизводимый пример входных данных (в виде текста / CSV / Python кода или ссылки на файл) и то что вы ожидаете получить на выходе. Также советую ознакомиться: Как наиболее эффективно задать вопрос, связанный с обработкой и/или анализом данных (например: по Pandas / Numpy / SciPy / SciKit Learn / SQL)

15 фев 2022 в 13:26

«подскажите пожалуйста, что нужно сделать» чтобы вам подсказали, для начала, отредактируйте свой вопрос, добавьте в него фрагмент ваших данных в воспроизводимом виде и пример того, что вы хотите увидеть в результате.

15 фев 2022 в 13:46

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Предположим, есть датафрейм:

 moo org industry_type 0 11 1 a, b, c 1 22 2 foo 2 33 3 bar 
res = df["industry_type"].str.split(",").explode().str.strip().to_frame().combine_first(df) 
 industry_type moo org 0 a 11 1 0 b 11 1 0 c 11 1 1 foo 22 2 2 bar 33 3 

Отслеживать
ответ дан 15 фев 2022 в 14:10
25.4k 4 4 золотых знака 20 20 серебряных знаков 36 36 бронзовых знаков

Не совсем понятно конечно, что вы хотите.

dict_of = df = pd.DataFrame(dict_of) >>> org_id org_name in_type 0 1 bank1 [Banking, E-Commerce, Internet, Mobile, Teleco. 1 2 bank2 [Banking, E-Commerce, Internet, Mobile, Teleco. 2 3 bank3 [Banking, E-Commerce, Internet, Mobile, Teleco. 

Вариант 1

>>> print(df.explode('in_type')) org_id org_name in_type 0 1 bank1 Banking 0 1 bank1 E-Commerce 0 1 bank1 Internet 0 1 bank1 Mobile 0 1 bank1 Telecommunications 1 2 bank2 Banking 1 2 bank2 E-Commerce 1 2 bank2 Internet 1 2 bank2 Mobile 1 2 bank2 Telecommunications 2 3 bank3 Banking 2 3 bank3 E-Commerce 2 3 bank3 Internet 2 3 bank3 Mobile 2 3 bank3 Telecommunications 

Вариант 2

>>> print(df.merge(df.in_type.apply(pd.Series), right_index=True, left_index=True)) org_id org_name 0 1 2 3 4 0 1 bank1 Banking E-Commerce Internet Mobile Telecommunications 1 2 bank2 Banking E-Commerce Internet Mobile Telecommunications 2 3 bank3 Banking E-Commerce Internet Mobile Telecommunications 

А может и вообще совсем другое 🙂

UPD

df['in_type'] = df['in_type'].apply(lambda x: x.split(', ')) >>> df org_id org_name in_type 0 1 bank1 [Banking, E-Commerce, Internet, Mobile, Teleco. 1 2 bank2 [Banking, E-Commerce, Internet, Mobile, Teleco.. 

Как преобразовать список в DataFrame в Python

Часто вам может понадобиться преобразовать список в DataFrame в Python.

К счастью, это легко сделать с помощью функции pandas.DataFrame , которая использует следующий синтаксис:

pandas.DataFrame(данные = Нет, индекс = Нет, столбцы = Нет, …)

  • data: данные для преобразования в DataFrame
  • index: Индекс для использования в результирующем DataFrame
  • столбцы: метки столбцов для использования в результирующем DataFrame.

В этом руководстве представлено несколько примеров использования этой функции на практике.

Пример 1: преобразование одного списка в фрейм данных

В следующем коде показано, как преобразовать один список в кадр данных pandas:

import pandas as pd #create list that contains points scored by 10 basketball players data = [4, 14, 17, 22, 26, 29, 33, 35, 35, 38] #convert list to DataFrame df = pd.DataFrame(data, columns=['points']) #view resulting DataFrame print(df) points 0 4 1 14 2 17 3 22 4 26 5 29 6 33 7 35 

Пример 2. Преобразование нескольких списков в DataFrame

В следующем коде показано, как преобразовать несколько списков в DataFrame pandas:

import pandas as pd #define lists points = [4, 14, 17, 22, 26, 29, 33, 35, 35, 38] rebounds = [1, 4, 4, 5, 8, 7, 5, 6, 9, 11] #convert lists into a single list data = [] data.append(points) data.append(rebounds) #view new list data [[4, 14, 17, 22, 26, 29, 33, 35, 35, 38], [1, 4, 4, 5, 8, 7, 5, 6, 9, 11]] #convert list into DataFrame df = pd.DataFrame(data). transpose () df.columns =['points', 'rebounds'] #view resulting DataFrame df points rebounds 0 4 1 1 14 4 2 17 4 3 22 5 4 26 8 5 29 7 6 33 5 7 35 6 8 35 9 9 38 11 

Пример 3: преобразование списка списков в фрейм данных

В следующем коде показано, как преобразовать список списков в кадр данных pandas:

import pandas as pd #define list of lists data = [[4, 1], [14, 4], [17, 4], [22, 5], [26, 8], [29, 7], [33, 5], [35, 6], [35, 9], [38,11]] #convert list into DataFrame df = pd.DataFrame(data, columns=['points', 'rebounds']) #view resulting DataFrame df points rebounds 0 4 1 1 14 4 2 17 4 3 22 5 4 26 8 5 29 7 6 33 5 7 35 6 8 35 9 9 38 11 

Вы можете использовать следующий код, чтобы быстро проверить, сколько строк и столбцов находится в результирующем DataFrame:

#display number of rows and columns in DataFrame df.shape (10, 2) 

Мы видим, что полученный DataFrame имеет 10 строк и 2 столбца.

И мы можем использовать следующий код для получения имен столбцов в результирующем DataFrame:

#display column names of DataFrame list(df) ['points', 'rebounds'] 

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Преобразование фрейма данных в список Python — 4 способа

В этом руководстве мы узнаем, как преобразовать фреймы данных в простой список Python. Мы узнаем обо всех методах, которые мы можем использовать для преобразования фрейма данных в списки. Прежде чем переходить к методам, давайте посмотрим, что такое фрейм данных и как мы можем создать его в Python с помощью Panda.

Что такое фреймворк Pandas в Python

Фреймы данных в модуле panda в Python — это модуль 2-D (двумерного) размера, который потенциально находится в гетерогенной структуре табличных данных со своими осями (строками и столбцами), помеченными переменными. Проще говоря, фрейм данных — это двумерная структура данных, в которой данные выровнены в табличной форме.

Создание фрейма данных в Pandas

Мы можем создать базовый фрейм данных с помощью следующей программы, используя модуль Pandas в Python:

# Importing Panda module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Print the dataframe as result print(dataFrame)
Famous Name Age 0 Stark Iron 42 1 Captain Rogers 95 2 Hulk banner 38 3 Spidy Parker 18

Итак, вот как мы можем создать фрейм данных с помощью модуля Pandas, и, посмотрев на результат, мы также можем выяснить, как выглядит фрейм данных.

Преобразование Dataframe в список

Мы будем использовать функцию tolist() из модуля Pandas в нашей программе следующим образом при преобразовании данного фрейма данных в список:

dataframe.tolist()

Давайте воспользуемся этой функцией на примере, чтобы понять, как работает функция tolist().

# Importing Panda module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Converting dataframe into a list List = dataFrame.values.tolist() # Print converted list data as result print(List)
[['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]

Способы преобразования фрейма данных в список

Фрейм данных можно преобразовать в список Python разными способами. В этом разделе мы обсудим все методы, которые мы собираемся использовать для преобразования заданного фрейма данных в список с помощью функции tolist():

  1. Преобразование фрейма данных, содержащего все строки.
  2. Преобразование фрейма данных во вложенный список.
  3. Преобразование во вложенный список столбцов.
  4. В список с включенными именами столбцов.

Теперь давайте узнаем о каждом методе на примере, чтобы лучше понять их.

Метод 1: преобразование фрейма данных, содержащего все строки

В этом методе мы преобразуем заданный фрейм данных в список, который будет содержать все строки определенного столбца из фрейма данных.

Посмотрите на следующую программу, чтобы понять, как реализован этот метод:

# Importing Panda module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Converting dataframe Famous Names column into a single list FamousNames = dataFrame['Famous Name'].tolist() # Printing the converted list data print(FamousNames)
['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker']

Итак, как мы видим в выходных данных, мы преобразовали столбец известных имен определенного фрейма данных в единый список и напечатали его в выходных данных.

Метод 2: преобразование фрейма данных во вложенный список

В этом методе мы преобразуем фрейм данных во вложенный список, который будет содержать все строки всех столбцов из фрейма данных по отдельности.

# Importing Pandas module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Initializing empty list ResultList = [] # Using for loop to iterating through dataframe columns for column in dataFrame.columns: listing = dataFrame[column].tolist() ResultList.append(listing) # appending dataframe columns into list # Print the converted list data print(ResultList)
[['Stark Iron', 'Captain Rogers', 'Hulk banner', 'Spidy Parker'], [42, 95, 38, 18]]

Метод 3: преобразование во вложенный список столбцов

В этом методе мы преобразуем заданный фрейм данных в список, который будет содержать несколько списков, в которых есть все столбцы строки.

Посмотрите на следующую программу, чтобы понять, как реализован этот метод:

# Importing Panda module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Converting dataframe into a list List = dataFrame.values.tolist() # Print converted list data as result print(List)
[['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]

Вот как мы можем использовать этот метод для преобразования заданного фрейма данных в список, содержащий несколько списков с данными из всех столбцов и строк.

Метод 4: получение списка с включенными именами столбцов

Мы используем этот метод, когда хотим преобразовать заданный фрейм данных в список, содержащий несколько списков из всех столбцов и строк с именами фрейма данных.

# Importing Panda module as jtp import pandas as jtp GivenData = # Creating DataFrame with DataFrame() function dataFrame = jtp.DataFrame(GivenData) # Converting dataframe into multiple lists listing = [dataFrame.columns.values.tolist()] + dataFrame.values.tolist() # Printing the converted list data print(listing)
[['Famous Name', 'Age'], ['Stark Iron', 42], ['Captain Rogers', 95], ['Hulk banner', 38], ['Spidy Parker', 18]]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *