我有一个如下所示的数据框:
df = pd.DataFrame({"piece": ["piece1", "piece2", "piece3", "piece4"], "No": [1, 1, 2, 3]})
No piece
0 1 piece1
1 1 piece2
2 2 piece3
3 3 piece4
我有一个系列,其索引对应于数据框中的“No”列.它将布尔变量赋值给“No”值,如下所示:
s = pd.Series([True, False, True, True])
0 True
1 False
2 True
3 True
dtype: bool
我想从数据框中选择那些行,其中“No”-value为True.这应该导致
No piece
2 2 piece3
3 3 piece4
我用df [“No”]尝试了很多索引.isin(s),或类似df [s [“No”] == True] ……但它还没有用.
最佳答案 我认为您需要将No列中的值映射到true / false条件并将其用于子集化:
df[df.No.map(s)]
# No piece
#2 2 piece3
#3 3 piece4
df.No.map(s)
# 0 False
# 1 False
# 2 True
# 3 True
# Name: No, dtype: bool