簡體   English   中英

如何在pandas的數據透視表中搜索數據?

[英]How to search data in a pivot table in pandas?

我使用以下方法從數據框創建了一個數據透視表:

table = pd.pivot_table(df , index=['student','year','subject'] , values=['mark'])

我有一張這樣的桌子:

student       year        subject 

'Martin'      2014        Algebra      5
                          Chemistry    3.5 
                          Programming  8

'Sara'        2013        Algebra 2.2
 ....         ....        .....

我怎樣才能獲得Martin 2014 Algebra的標志?

我試過作為數據幀:

 t[t.student=='Martin'][t.year=2014][t.subject==Algebra]

但它不起作用

有人能幫助我嗎? 謝謝!

您需要重置索引才能使用布爾索引

t= table.reset_index()
t[(t.student=='Martin') & (t.year=2014) & (t.subject=='Algebra')]

或者您可以使用MultiIndex Selection

table.loc[('Martin', 2014, 'Algebra')]

您有一個多索引數據框,使用loc with tuple來訪問該值:

table.loc[("'Martin'",2014,"Algebra")]

生成的數據透視表只是另一個數據幀。 但是,此數據框具有多索引。 可以使用級別的元組引用多索引。 這是@ psidom和@ TedPetrou的答案


但是,另一種方法是使用xs橫截面方法

table.xs(('Martin', 2014, 'Algebra'))

在這種特殊情況下,表格實際上是一個系列。 您可以在數據框上使用query 所以我們可以將它作為數據幀然后進行query

table.to_frame().query('student == "Martin" & year == 2014 & subject == "Algebra"')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM