Pandas Создать столбец из Numpy Массивы с указанием минимального и максимального значений в других столбцах - PullRequest
0 голосов
/ 23 января 2020

Учитывая следующий фрейм данных:

df = pd.DataFrame({'min':[1,2,3],'max':[4,5,6]})
df
   min  max
0    1    4
1    2    5
2    3    6

Мне нужно добавить третий столбец под названием «массивы», который представляет собой набор массивов, сгенерированных из столбцов «мин» и «макс» (с добавлением 1 к максимальное значение). Например, используя данные из первой строки, min = 1 и max = 4:

np.arange(1, 5)
array([1, 2, 3, 4])

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

Вот желаемый результат:

   min  max     arrays
0    1    4  [1, 2, 3, 4]
1    2    5  [2, 3, 4, 5]
2    3    6  [3, 4, 5, 6]

Ответы [ 2 ]

4 голосов
/ 23 января 2020

Использовать понимание списка с range

df['arrays'] = [list(range(m, mx+1)) for m, mx in zip(df['min'], df['max'])]


Out[1015]:
   min  max        arrays
0    1    4  [1, 2, 3, 4]
1    2    5  [2, 3, 4, 5]
2    3    6  [3, 4, 5, 6]
3 голосов
/ 23 января 2020

Другое решение:

df = pd.DataFrame({'min':[1,2,3],'max':[4,5,6]})

df['arrays'] = df.apply(lambda x: np.arange(x['min'], x['max']+1), axis=1)

print(df)

Отпечатки:

   min  max        arrays
0    1    4  [1, 2, 3, 4]
1    2    5  [2, 3, 4, 5]
2    3    6  [3, 4, 5, 6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...