如何将3D数组转换为数据帧

How To Convert a 3D Array To a Dataframe(如何将3D数组转换为数据帧)
本文介绍了如何将3D数组转换为数据帧的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个维度数组(40 X 40 X 8064),它对应于(视频X频道X数据)。

但现在我想按如下顺序将数组转换为数据框:

Index  |  Video  |  Channel_0  |  Channel_1  |  Channel_2  |  ....  |  Channel_39
0      |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
1      |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
2      |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
3      |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
4      |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
...............
8063   |     0   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]
......
......
322559 |     39   |[Some Value] |[Some Value] |[Some Value] |  ....  |[Some Value]

推荐答案

import numpy as np
import pandas as pd

n_videos = 2
n_channels = 3
n_points = 4

# Generate data
A = np.arange(n_videos * n_channels * n_points).reshape(n_videos,
                                                        n_channels,
                                                        n_points)

col_names = ["Channel_{}".format(i) for i in range(n_channels)]
# Need to re-order axis before reshape. 
# Want axis correspoonding to videos to be at first axis.
df = pd.DataFrame(np.rollaxis(A, 2, 1).reshape(-1, n_channels),
                  columns=col_names)
video_idx = np.hstack((np.full((n_points,), i) for i in range(n_videos)))
video_idx = pd.Series(video_idx, name="Video")
df.insert(0, "Video", video_idx)

这篇关于如何将3D数组转换为数据帧的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)
Elementwise multiplication of several arrays in Python Numpy(几个数组在Python Numpy中的元素乘法)
cannot use geometry manager pack inside . which already has slaves managed by grid(无法在内部使用几何管理器包。它已经拥有由网格管理的从属对象)
Is there any way to quot;extractquot; the dtype conversion functionality from pandas read_csv?(有没有办法从 pandas Read_CSV中提取数据类型转换功能?)