Как сохранить только минимальные и максимальные значения подсписков в списке? - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть столбец данных в виде:

df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9]})

Мой выходной список необходим (сохраняя минимальные максимальные значения диапазонов):

[[1,4],[5,7],[8,9]]

Вот как далеко я получил:

import pandas as pd
df = pd.DataFrame({'a':[1,3,5,7,4,5,6,4,7,8,9]})

# Convert df column to a unique value list and sort ascending
us = df['a'].unique().tolist()
us.sort()
lst1 = [int(v) for v in us]

# Create 3 groups of values
lst2 = [lst1[i:i + 3] for i in xrange(0, len(lst1), 3)]

# Keep only min and max of these groups

Как мне преобразовать это:

[[1,3,4],[5,6,7],[8,9]]  

в желаемый результат?

Ответы [ 2 ]

1 голос
/ 08 ноября 2019

Вы можете использовать фрейм данных

df = df.sort_values("a").drop_duplicates().reset_index(drop=True)
df.groupby(df.index // 3).agg(['min', 'max']).values.tolist()
1 голос
/ 08 ноября 2019

Для этого вы можете использовать понимание списка:

lst3 = [[min(i), max(i)] for i in lst2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...