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
没想到会这么简单!:)