【问题标题】:Is there an equivalent to pd.DataFrame.at[index, column] for a MultiIndex DataFrame?MultiIndex DataFrame 是否有等效于 pd.DataFrame.at[index, column] 的方法?
【发布时间】:2018-03-29 19:39:31
【问题描述】:

我需要在具有 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"] 的值,其中第一个条目是索引,第二个条目是列。

【问题讨论】:

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


    【解决方案1】:

    IndexSlice 用于多个索引

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-26
      • 2019-09-12
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多