python - 使用不同长度的 bool 系列从数据框中选择行

标签 python pandas

我有一个如下所示的数据框:

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 列中的值 maptrue/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/

相关文章:

python - 在 Amazon AWS 上使用 python 从另一台 EC2 服务器上使用 HBase EMR

python - PyQt5 线程 GUI 不工作

python - 在 Python 中,str 和 int 之间的哪种转换方式更快?

python - 如何将 Python 元组转换为 .csv 文件?

python - 如何将其转换为日期时间

python - 用一些匹配和不匹配的列和索引减去数据框

python - 如何创建行中包含指定字符串的列列表?

python - 在python中禁用yaml文件的别名

python : removing "\n" from a file name

python - 将 DataFrame 中的 pandas 系列从字符串(金融缩写)转换为数字