Python 向索引数据帧添加行

Python 向索引数据帧添加行,python,pandas,Python,Pandas,我有一个数据帧: df = pd.DataFrame({'a':[1,2,3,4,5],'b':[100,200,300,400,500],'c':['a','b','j','e','q']}) df = df.set_index(['a','b']) #(this is sample structure, i will be having directly the indexed df) c a b 1 100 a 2 200 b 3 300 j 4

我有一个数据帧:

df = pd.DataFrame({'a':[1,2,3,4,5],'b':[100,200,300,400,500],'c':['a','b','j','e','q']})   
df = df.set_index(['a','b'])  #(this is sample structure, i will be having directly the indexed df)

       c
a  b     
1 100  a
2 200  b
3 300  j
4 400  e
5 500  q

This is my input multi-indexed dataframe
我有3个变量:

a1 = 7
b1 = 700
c1 = z

(a1,b1)   c
我想将其作为新行添加到多索引数据帧中,而不必取消索引,然后重新创建

最终结果也是一个多索引数据帧

需要最终输出

       c
a  b     
1 100  a
2 200  b
3 300  j
4 400  e
5 500  q
7 700  z
一种方法是先取消设置索引,追加行,然后重新创建索引(但我的df的实际大小大约为100万),这样可能会影响性能


除了上述方法之外,是否可以向多索引数据帧添加行

如果原始
多索引中不存在此组合,则可以使用:

df.loc[(a1,b1), 'c'] = c1
print (df)
       c
a b     
1 100  a
2 200  b
3 300  j
4 400  e
5 500  q
7 700  z
如果组合存在,则覆盖原始值:

a1 = 1
b1 = 100
c1 = 'z'
df.loc[(a1,b1), 'c'] = c1
print (df)
       c
a b     
1 100  z # a to z
2 200  b
3 300  j
4 400  e
5 500  q

没想到会这么简单!:)