2015-11-07 70 views
1

我有一個csv文件的工作,我已經讀入使用以下命令大熊貓一Seaborn情節遇到問題:從多級熊貓數據幀

RawData = pd.read_csv(rawData_file_path, engine='python', header=[0,1]) 

這將創建一個數據框對象,其中行1和2是每列中的標題行。事情是這樣的:

------------------------------- 
| Group 1 | Group 2 | 
------------------------------- 
| A | B | A | B | 
------------------------------- 
| data | data | data | data | 
------------------------------- 
| data | data | data | data | 
------------------------------- 

我試圖運行與seaborn(sns.countplot)計數的情節,但我遇到了問題,因爲第二行標題不被視爲一個標題。 我試圖分析的列是一個簡單的性別列(男性/女性)。然而,根據結果如何佈局,列標題是這樣的:

row 1: What is your gender? 
row 2: Response 
row n: Male or Female etc. 

我嘗試這種使用countplot繪製:

sns.countplot(x=['What is your gender?'], data=RawData) 

不過,我得到這個錯誤:ValueError異常:該DataFrame的真值是不明確的。

Use a.empty, a.bool(), a.item(), a.any() or a.all(). 

當我壓扁數據幀時,seaborn情節的工作,但不是映射男性和女性計數,它映射的男,女和「響應」計數。這導致我相信標題的第二行是導致DataFrame不平坦的值錯誤的原因。

這是我必須要做的許多第一個情節,後面的一些列更復雜,並且需要第二行作爲標題中的參考。因此,我不能簡單地壓扁DataFrame。

任何人都可以在這裏提出工作嗎?我想在現在有一個簡單的計數陰謀,在開始更復雜的可視化之前,如熱點地圖等,將其扼殺在萌芽階段。

回答

1

countplot這樣的Seaborn函數假定您有tidy data。簡而言之:每個變量應該是一個列,每個觀察都應該是一行。你會想找到一種方法來格式化你的數據框,以便它在這個基本結構中,然後你就可以使用seaborn來繪製它。