对于MultiIndex DataFrame,是否有相当于pd.DataFrame.at [index,column]的内容?

时间:2018-03-29 19:39:32

标签: python python-3.x pandas dataframe multi-index

我需要在具有MultiIndex的pandas DataFrame中设置一个单元格的值。有没有类似于pd.DataFrame.at [index,column]的方法,我可以在MultiIndex DataFrame上使用。

import pandas as pd
arrays = [["a", "b", "c"], ["a", "b", "c"]]
multi_index = pd.MultiIndex.from_product(iterables=arrays, names=["i", "k"])
partial_corr = pd.DataFrame(index=multi_index, columns=arrays[0])


partial_corr
Out[5]: 
       a    b    c
i k               
a a  NaN  NaN  NaN
  b  NaN  NaN  NaN
  c  NaN  NaN  NaN
b a  NaN  NaN  NaN
  b  NaN  NaN  NaN
  c  NaN  NaN  NaN
c a  NaN  NaN  NaN
  b  NaN  NaN  NaN
  c  NaN  NaN  NaN

在DataFrame partial_corr中,我希望能够获取/设置

的值
partial_corr.at["a", "b", "b"]

其中.at []中的第一个条目用于索引" i",第二个条目用于索引" k",第三个条目用于列...类似于单个索引DataFrame可以返回df.at [" a"," b"]的值的方式,其中第一个条目是索引,第二个条目是列。

1 个答案:

答案 0 :(得分:1)

IndexSlice用于多个索引

idx = pd.IndexSlice
partial_corr.loc[idx['a', 'b'], idx['b']]
Out[431]: nan