我有一个如下所示的数据框:
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
我有一个系列,其索引对应于数据框中的“否”列。它将 bool 变量分配给“否”值,如下所示:
s = pd.Series([True, False, True, True])
0 True
1 False
2 True
3 True
dtype: bool
我想从数据框中选择那些在系列中“No”值为 True 的行。这应该导致
No piece
2 2 piece3
3 3 piece4
我已经尝试了很多使用 df["No"].isin(s) 或类似 df[s["No"] == True] 的索引……但它还没有奏效。
最佳答案
我认为您需要将 No
列中的值 map
到 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
关于python - 使用不同长度的 bool 系列从数据框中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42395842/