我正在尝试执行以下操作:在数据框X
上,我想选择X['a']>0
的所有行,但我想保留X
的维度,以便任何其他行将显示为包含NaN
。有快速的方法吗?如果X[X['a']>0]
有X
,则不会保留 Level Item Qty Total Qty
1 A 1 1
1 B 2 2
2 C 3 6
2 D 1 2
2 E 2 4
3 F 5 20
3 G 3 12
2 H 2 4
3 I 1 4
2 J 1 2
2 K 3 6
1 L 2 2
1 M 1 1
的尺寸。
答案 0 :(得分:1)
使用双下标[[]]
:
In [42]:
df = pd.DataFrame({'a':np.random.randn(10)})
df
Out[42]:
a
0 1.042971
1 0.978914
2 0.764374
3 -0.338405
4 0.974011
5 -0.995945
6 -1.649612
7 0.965838
8 -0.142608
9 -0.804508
In [48]:
df[df[['a']] > 1]
Out[48]:
a
0 1.042971
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 NaN
7 NaN
8 NaN
9 NaN
这里的关键语义差异是当你加倍下标时返回的是一个df,所以这掩盖了df本身而不是索引
请注意,如果您有多列,则会将所有列屏蔽为NaN