如何在以元组为索引的DataFrame中插入一行?

时间:2019-05-17 12:15:15

标签: python pandas dataframe tuples

我的DataFrame索引是一个元组,我想插入一行。

我认为下面的代码可以工作:

df.loc [('first','second')] =(1、2、3)

但是它并没有达到我的预期,而是在数据帧中添加了一个等值线“ first”和一个列“ second”。

1 个答案:

答案 0 :(得分:0)

首先通过MultiIndex.from_tuplesindex转换为MultiIndex,然后还为选择的列添加列表:

df = pd.DataFrame({
         'a':[1,3,5],
         'b':[5,4,5],
         'c':[10,11,12],
}, index= [('a','b'),('a','c'),('a','d')])

print (df)
        a  b   c
(a, b)  1  5  10
(a, c)  3  4  11
(a, d)  5  5  12

df.index = pd.MultiIndex.from_tuples(df.index)
df.loc[('first', 'second'), ['a','b','c']] = (1,2,3)
print (df)
                a    b     c
a     b       1.0  5.0  10.0
      c       3.0  4.0  11.0
      d       5.0  5.0  12.0
first second  1.0  2.0   3.0