Перенос некоторой информации фрейма данных в новую матрицу

#python #arrays #pandas #dataframe

#python #массивы #pandas #фрейм данных

Вопрос:

Я пытаюсь «преобразовать» информацию о строках фрейма данных от 0 до 15 и столбцах col1 до col16 в изображение (16×16)

Я считываю фрейм данных из файла .txt:

 df = pd.read_csv('User1/Video1.txt', sep="s |t |s t |t s ", header=None, names=headers, engine='python', parse_dates=parse_dates)
  
                         date arrow  col1  col2  ...  col13  col14  col15  col16
0    2020-11-09 09:53:39.552    ->   0.0   0.0  ...    0.0    0.0    0.0    0.0
1    2020-11-09 09:53:39.552    ->   0.0   2.0  ...    0.0    0.0    0.0    0.0
2    2020-11-09 09:53:39.552    ->   0.0   0.0  ...    0.0    0.0    6.0    6.0
3    2020-11-09 09:53:39.552    ->   0.0   0.0  ...    0.0    0.0    0.0    0.0
4    2020-11-09 09:53:39.586    ->   0.0   9.0  ...    0.0    7.0    0.0    0.0
...                      ...   ...   ...   ...  ...    ...    ...    ...    ...
15   2020-11-09 09:54:06.920    ->   4.0   0.0  ...    4.0    4.0    0.0    0.0
  

После создания пустой матрицы img = np.zeros((16, 16, 3), dtype=np.uint8) я хочу выполнить итерацию по фрейму данных для передачи информации о столбцах.

Для этого я думал использовать df.itertuples , но у меня возникли проблемы с заполнением скобок.

 for row in df.itertuples():
     img[]][]  = row[]
  

Можете ли вы дать какой-либо совет? Спасибо.

Ответ №1:

Использование DataFrame.iloc np.resize

 #import numpy as np
np.resize(df.iloc[:16, -16:].to_numpy(), (16, 16, 3))
  

если ваши столбцы не выровнены по правому краю, вы можете выполнить фильтрацию с помощью 'col'

 np.resize(df.filter(regex='col').iloc[:16, :].to_numpy(), (16, 16, 3))