首页 > 解决方案 > 将一些数据帧信息传输到新矩阵

问题描述

我正在尝试将数据帧行0 到 15和列col1 到 col 16的信息“转换”为图像(16x16)

我正在从 .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[]

你能提供任何建议吗?谢谢。

标签: pythonarrayspandasdataframe

解决方案


使用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))

推荐阅读