Изменить список, чтобы он соответствовал определенному измерению в python - PullRequest
1 голос
/ 01 мая 2020

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

Например, для _list выше, если бы я хотел отобразить это как Таблица 5x5 выглядит так:

import random
import string

random.seed(1)
N = 21
_list = ["".join(random.sample(string.ascii_letters, 3)) for _ in range(N)]

dimension = 5 * 5
buffer = ["" for _ in range(dimension - len(_list))]
_list = _list + buffer

pd.DataFrame(np.array(_list).reshape(5, 5))

, которая выдает

     0    1    2    3    4
0  iKZ  Weq  hFW  CEP  yYn
1  gFb  yBM  WXa  SCr  UZo
2  Lgu  bPI  ayR  nBU  bHo
3  WCF  Jow  oRW  Dsb  AJP
4  glO                    

Мне кажется, что этот подход довольно неуклюжий, и что есть более подходящий подход.

1 Ответ

3 голосов
/ 01 мая 2020

Проверьте это и посмотрите, работает ли он у вас ... основной работник здесь resize и установив для refcheck значение False, поскольку мы не делим память с другим массивом

#convert list to an array
num = np.array(_list)

#resize and set refcheck to False
# it is a new object and memory for this array has not been shared with another 
num.resize((5,5), refcheck=False)

#print num
num

array([['iKZ', 'Weq', 'hFW', 'CEP', 'yYn'],
       ['gFb', 'yBM', 'WXa', 'SCr', 'UZo'],
       ['Lgu', 'bPI', 'ayR', 'nBU', 'bHo'],
       ['WCF', 'Jow', 'oRW', 'Dsb', 'AJP'],
       ['glO', '', '', '', '']], dtype='<U3')

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

...