2016-02-29 58 views
1

我想在多列圓桌上設置一個值。但是,我似乎是工作的一個複製品,價值不堅持:熊貓:在MultiColumn對象上創建視圖

In[4]:  tIndex = np.array([32, 34, 134, 234, 334, 434]) 
    topColumns = ['homogenous', 'heterogenous'] 
    mus = ['mu_el', 'mu_eh', 'mu_ul', 'mu_uh'] 
    bottomColumns = mus + ['Jl', 'Jh', 'v', 'u'] 
    arrays = [topColumns, bottomColumns] 
    #tuples = list(zip(*arrays)) 
    columns = pd.MultiIndex.from_product(arrays) 

    df = pd.DataFrame(columns=columns, index=tIndex) 
In[6]: df.loc[32, 'homogenous']['v'] = 1 
In[8]: df.loc[32, 'homogenous']['v'] 
Out[8]: nan 

一個多指標的情況下,內部.loc[]是瑣碎和文檔中廣泛提及。但是,如何使用多列數據框查看視圖?

回答

1

你需要傳遞的元組來表示不同的層次:

In [125]: 
df.loc[32, ('homogenous','v')] = 1 
df 

Out[125]: 
    homogenous          heterogenous    \ 
     mu_el mu_eh mu_ul mu_uh Jl Jh v u  mu_el mu_eh mu_ul 
32   NaN NaN NaN NaN NaN NaN 1 NaN   NaN NaN NaN 
34   NaN NaN NaN NaN NaN NaN NaN NaN   NaN NaN NaN 
134  NaN NaN NaN NaN NaN NaN NaN NaN   NaN NaN NaN 
234  NaN NaN NaN NaN NaN NaN NaN NaN   NaN NaN NaN 
334  NaN NaN NaN NaN NaN NaN NaN NaN   NaN NaN NaN 
434  NaN NaN NaN NaN NaN NaN NaN NaN   NaN NaN NaN 


    mu_uh Jl Jh v u 
32 NaN NaN NaN NaN NaN 
34 NaN NaN NaN NaN NaN 
134 NaN NaN NaN NaN NaN 
234 NaN NaN NaN NaN NaN 
334 NaN NaN NaN NaN NaN 
434 NaN NaN NaN NaN NaN 

看起來你做鏈接索引

+0

括號的伎倆! – FooBar

+0

多索引不需要元組的確是不一致的,但是多列索引是不一致的。 – FooBar