我正在尝试在多列表上设置一个值。但是,我似乎正在处理副本,因为值不会持续存在:
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[]
内的多索引的情况很简单,并在文档中广泛提及。但是,如何使用具有多列数据框的视图?
答案 0 :(得分: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
它看起来你正在进行链式索引