我正在嘗試創建一個將標籤值保存到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