我有一个带有多索引的Pandas数据帧(Reg,Type,Part,IsExpired) -
Reg Type Part IsExpired Quantity
APAC Disk A False 10
True 12
EMEA Disk A False 22
EMEA Disk B False 13
True 17
我想确保IsExpired的每个(Reg,Type,Part)元组都有True和False。例如。我想为(EMEA,Disk,A,True)插入一行 -
Reg Type Part IsExpired Quantity
APAC Disk A False 10
True 12
EMEA Disk A False 22
True 0 <-- inserted row
EMEA Disk B False 13
True 17
答案 0 :(得分:2)
In [11]: df2
Out[11]:
Quantity
Reg Type Part IsExpired
APAC Disk A False 10
True 12
EMEA Disk A False 22
B False 13
True 17
In [12]: df2.unstack()
Out[12]:
Quantity
IsExpired False True
Reg Type Part
APAC Disk A 10 12
EMEA Disk A 22 NaN
B 13 17
In [13]: df2.unstack().fillna(0)
Out[13]:
Quantity
IsExpired False True
Reg Type Part
APAC Disk A 10 12
EMEA Disk A 22 0
B 13 17
将这个作为专栏保留是否有意义?否则stack回来了:
In [14]: df2.unstack().fillna(0).stack()
Out[14]:
Quantity
Reg Type Part IsExpired
APAC Disk A False 10
True 12
EMEA Disk A False 22
True 0
B False 13
True 17
答案 1 :(得分:2)
您是否考虑过添加相关行?由于您实际上只是添加一个值的单元格,因此您可以像这样高效地执行此操作:
df.at[('EMEA', 'DISC', 'A', False), 'Quantity'] = 0