【发布时间】:2017-07-03 22:28:30
【问题描述】:
我正在研究this post,它几乎解决了我的问题。但是,就我而言,我想基于 df 的第二级工作,但尽量不明确指定我的第一级列名。
借用原始数据框:
df = pd.DataFrame({('A','a'): [-1,-1,0,10,12],
('A','b'): [0,1,2,3,-1],
('B','a'): [-20,-10,0,10,20],
('B','b'): [-200,-100,0,100,200]})
##df
A B
a b a b
0 -1 0 -20 -200
1 -1 1 -10 -100
2 0 2 0 0
3 10 3 10 100
4 12 -1 20 200
我想将NA 分配给a 和b 的所有列,其中b<0。我选择它们的依据是:df.xs('b',axis=1,level=1)<b,但是我实际上无法执行替换。但是,我有不同的 1 级名称,因此不能基于 A 和 B 显式创建索引,但可能通过 df.columns.values?
期望的输出是
##df
A B
a b a b
0 -1 0 NA NA
1 -1 1 NA NA
2 0 2 0 0
3 10 3 10 100
4 NA NA 20 200
感谢所有提示,在此先感谢您。
【问题讨论】: