Как преобразовать столбец в список python
Перейти к содержимому

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

  • автор:

Значение столбца в список 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 в Pandas

Python snake transforming dataframe to a list.

Очень часто при работе с данными возникает необходимость преобразования столбцов или строк в списки. Одним из наиболее распространённых инструментов для работы с данными в Python является библиотека Pandas, которая предоставляет структуру данных DataFrame. DataFrame — это двумерная маркированная структура данных с различными типами столбцов.

Рассмотрим пример. Допустим, есть DataFrame, который содержит информацию о продажах в магазине:

import pandas as pd data = df = pd.DataFrame(data)

Теперь, если требуется получить содержимое столбца ‘Товар’ в виде списка, это можно сделать следующим образом:

list_of_goods = df['Товар'].tolist()

Метод tolist() преобразует столбец DataFrame в список. Теперь переменная list_of_goods содержит список товаров.

Для получения содержимого строки как списка, можно сначала транспонировать DataFrame (поменять местами строки и столбцы), а затем применить тот же метод tolist() . Например, чтобы получить первую строку DataFrame в виде списка, можно сделать так:

list_of_first_row = df.T[0].tolist()

Таким образом, с помощью метода tolist() можно легко преобразовать содержимое столбца или строки DataFrame в список.

Как преобразовать список в 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 вывести список в столбик

Обложка к статье

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

Использование цикла for для вывода списка в столбик

Использование цикла for — это один из самых простых способов вывода списка в столбик в Python. Для этого мы можем перебрать каждый элемент списка и вывести его на новой строке.

Для начала определим список, который мы будем выводить в столбик:

my_list = [1, 2, 3, 4, 5]

Затем мы можем использовать цикл for для перебора элементов списка и вывода каждого элемента на новой строке:

for item in my_list: print(item)

Это выведет следующий результат:

1 2 3 4 5

При необходимости мы можем использовать свой разделитель между каждым элементом. Для примера, мы хотим чтобы каждый элемент выводился с новой строки и после элемента была запятая:

my_list = [1, 2, 3, 4, 5] for item in my_list: print(item, end=',\n')

Это выведет следующий результат:

1, 2, 3, 4, 5,

Также мы можем использовать f-строки для более гибкого форматирования вывода. Для примера, мы хотим вывести каждый элемент в квадратных скобках с новой строки:

my_list = [1, 2, 3, 4, 5] for item in my_list: print(f"[]")

Это выведет следующий результат:

[1] [2] [3] [4] [5]

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

Использование метода join() для вывода списка в столбик

Для вывода списка в столбик в Python можно использовать метод join() . Этот метод объединяет элементы списка в одну строку, разделяя их указанным разделителем. Мы можем использовать символ переноса строки ( \n ) в качестве разделителя, чтобы каждый элемент выводился на отдельной строке.

Пример использования метода join() для вывода списка в столбик:

my_list = ['apple', 'banana', 'orange'] print('\n'.join(my_list))

В этом примере мы объединяем элементы списка my_list с помощью метода join() , указывая символ переноса строки в качестве разделителя. Результатом будет вывод списка в столбик:

apple banana orange

Обратите внимание, что метод join() работает только со строками, поэтому если в списке есть элементы других типов, они должны быть преобразованы в строки перед использованием метода join() .

Использование функции print() вместе с оператором ‘ * ‘ для вывода списка в столбик

Использование оператора * вместе с функцией print() — это один из способов вывести список в столбик в Python. Оператор * распаковывает элементы списка, разделяя их пробелами, и передает их в качестве аргументов функции print() .

Простейшим примером использования оператора * вместе с print() для вывода списка в столбик будет следующий код:

list_name = ['item1', 'item2', 'item3'] print(*list_name, sep='\n')

В этом примере мы создали список list_name , содержащий три элемента, и использовали print() вместе с оператором * и аргументом sep=’\n’ , чтобы вывести каждый элемент списка в отдельной строке.

В результате мы получим вывод в таком виде:

item1 item2 item3

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

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