我正在尝试创建一个将标签值保存到2D DataFrame的Pandas DataFram。这是我迄今所做的:将2D Panda的DataFrame的列表转换为3D DataFrame
我读书用pd.read_csv
CSV文件,并追加其列出,对于这个问题的目的,让我们来看看下面的代码:
import numpy as np
import pandas as pd
raw_sample = []
labels = [1,1,1,2,2,2]
samples = np.random.randn(6, 5, 4)
for contents in range(samples.shape[0]):
raw_sample.append(pd.DataFrame(samples[contents]))
然后,我添加raw_sample
到df=d.DataFrame(raw_sample)
。然后,我通过执行以下添加标签df
:
df = df.set_index([df.index, labels])
df.index = df.index.set_names('index', level=0)
df.index = df.index.set_names('labels', level=1)
我试着打印该和我
0
index labels
0 1 0 1 2 3
0 0...
1 1 0 1 2 3
0 0...
2 1 0 1 2 3
0 1...
3 2 0 1 2 3
0 -0...
4 2 0 1 2 3
0 0...
5 2 0 1 2 3
0 -0...
我也曾尝试打印df[0]
,我仍然得到了同样的事情。
我想知道这是否是在
我知道一个数据帧不能把二维数组的形式,其他的事情是使用pd.Panel
,为了这个,我转换的raw_sample
全部内容numpy的数组,然后转换raw_sample
本身numpy的阵列,也做了以下内容:
p1 = pd.Panel(samples, items=map(str, labels))
,但是当我打印,我得到
<class 'pandas.core.panel.Panel'>
Dimensions: 6 (items) x 5 (major_axis) x 4 (minor_axis)
Items axis: 1 to 2
Major_axis axis: 0 to 4
Minor_axis axis: 0 to 3
看着Items
,它看起来像所有的常见值被分组在一起。
我不知道该怎么做。帮帮我!!
更新
输入:
labels = [1,1,1,2,2,2]
samples = [5x4 pd.DataFrame, 5x4 pd.DataFrame, 5x4 pd.DataFrame, 5x4 pd.DataFrame, 5x4 pd.DataFrame, 5x4 pd.DataFrame]
所需的输出:
index labels samples
0 1 1 2 3 4 5 6 7
3 5 6 7 9 5 4
3 4 5 6 7 8 9
1 1 4 3 2 4 5 6 7
3 5 6 7 4 5 6
2 3 4 3 4 5 3
...
不确定你确切需要什么。你可以给我们你的输入和期望的输出吗? – Allen
@Allen更新。谢谢。 – Akshay
我不确定,但似乎你需要独特的'labels',所以将'labels = [1,1,1,2,2,2]'改为'labels = list('abcdef')'然后可以选择通过'print(p1 ['a'])' – jezrael