Создание списка списков с использованием объектов np.where () - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать список списков в Python, используя np.where(pd.isnull(x)) для создания списков, которые будут добавлены. По сути, я пытаюсь выполнить цикл по data.frame, чтобы каждая строка находила, какие значения не являются нулевыми. Я использую np.where(), потому что я хочу, чтобы индексы ненулевых значений были внутренним списком, который затем должен быть добавлен во внешний список. Этот внешний список будет уменьшен до уникальных значений. Моя текущая идея заключается в следующем:

outer_list = []
outer_list.append(list(range(0, number_of_columns)) #This is the longest possible return,
#but it may not be found in the data frame
for i in list(range(0, len(data_frame.index))):
       row = data_frame.iloc[i,:].tolist()
       item = np.where(pd.notnull(row))[0] #using [0] to turn the array into a list 
       outer_list.append(item)
unique_list = np.unique(outer_list)

Однако, когда я пытаюсь это item возвращается к объекту массива (?), Например, array([5, 6, 7, 8], dtype=int64) при добавлении, чего я не делаюхотеть. Очень важно, чтобы outer_list содержал серию списков. Как я могу обойти это / как я должен делать это?

Я уверен, что это не лучший способ решения этой проблемы, поэтому любые предложения о том, как улучшить, также будут высоко оценены, я довольно новичок в Python.

Данные выглядят примерно так:

Я не знал, как лучше составить таблицу ...

Как и вышекод будет принимать индексы ненулевых значений и генерировать список списков, начиная с самого длинного списка (который будет добавлен вне цикла).

outer_list = []
outer_list.append([0,1,2,3,4])

Затем пройти по строкамтаблицы, добавив следующий список для каждой строки соответственно:

[0,1,2,3]
[1,2,3,4]
[2,3,4]
[0,1,2,3]

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

[[0,1,2,3,4], [0,1,2,3], [1,2,3,4], [2,3,4], [0,1,2,3]]

, который затем будетсокращено до уникального списка:

[[0,1,2,3,4], [0,1,2,3], [1,2,3,4], [2,3,4]] 

Поскольку элементы 1 и 4 одинаковы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...