2
我正在嘗試使用索引索引製作一個熊貓數據框的seaborn facet plot。第一個代碼塊生成一個類似於數據集我有將具有分層列索引的寬型熊貓數據框轉換爲整齊格式
from itertools import product, repeat
import pandas as pd
import numpy as np
from pandas import DataFrame, Series
import seaborn as sns
import matplotlib.pyplot as plt
dummy = np.random.random((4, 4))
cols = pd.MultiIndex.from_tuples(list(product('ab', 'cd')),
names=['foo', 'bar'])
dat1 = DataFrame(dummy, columns=cols)
它看起來像
foo a b
bar c d c d
0 0.266058 0.345076 0.339332 0.176753
1 0.094610 0.393542 0.838283 0.314625
2 0.598301 0.831869 0.277067 0.854321
3 0.910993 0.688163 0.158744 0.570700
,不與FacetGrid工作的工作---至少,它不是在FacetGrid希望與之合作。我可以做數據
dfs = [DataFrame([Series(dummy[:, i], name='obs'),
Series(list(repeat(cols.values[i][0], 4)), name='foo'),
Series(list(repeat(cols.values[i][1], 4)), name='bar')],).T
for i in range(4)]
dat2 = pd.concat(dfs)
一些快速和骯髒的操作讓它看起來像
obs foo bar
0 0.266058 a c
1 0.0946101 a c
2 0.598301 a c
3 0.910993 a c
0 0.345076 a d
1 0.393542 a d
2 0.831869 a d
3 0.688163 a d
0 0.339332 b c
1 0.838283 b c
2 0.277067 b c
3 0.158744 b c
0 0.176753 b d
1 0.314625 b d
2 0.854321 b d
3 0.5707 b d
它看起來像從seaborn example gallery數據。我的問題是,是否有一個DataFrame或Index方法來爲我進行這種轉換。它似乎應該存在,但我還沒有在文檔中找到它。
就像一個魅力。謝謝。 – Elliot