我试图查询pandas数据帧中的行,其中一列包含一个包含特定值的元组。在
例如:
User Col1
0 1 (cat, dog, goat)
1 1 (cat, sheep)
2 1 (sheep, goat)
3 2 (cat, lion)
4 2 (fish, goat, lemur)
5 3 (cat, dog)
6 4 (dog, goat)
7 4 cat
所以假设我想返回Col1
包含'cat'的行,有没有一种方法可以不迭代每一行并执行“if”(我的实际数据集有更多的行)?在
以及
df['Col1'].str.contains("cat")
只对最后一行返回'true'
数据帧列包含字符串和元组的混合。我不认为您可以避免迭代该列。但是可以使用apply方法高效地进行迭代。下面是示例代码。在
这给了我以下的输出
^{pr2}$为什么不将数据帧子集化,然后输出结果呢?在
您可以在^{} 中使用lambda函数:
当
"cat"
在单元格中时,lambda返回True
。它适用于字符串("cat" in "cat"
是True
)和元组("cat" in ("cat", "dog")
是True
)。通过对df
进行子集设置,可以得到lambda是True
的所有行。在相关问题 更多 >
编程相关推荐