我下面有csv
ID,Name1,Name2
1,A,A
2,B,B
3,C,D
4,0,Z
5,0,Z
找到所有具有Name1 ==0 and Name2==Z
预期是
4,0,Z
5,0,Z
我的代码
df[df['Name1'].str.contains("0") & df['Name2'].str.contains('Z')]
还有其他方法吗?
答案 0 :(得分:1)
另一种方法,使用query
方法:
df.query('Name1.str.contains("0") and Name2.str.contains("Z")')
# or
df.query('Name1 == "0" and Name2 == "Z"')
# ID Name1 Name2
# 3 4 0 Z
# 4 5 0 Z
在评论建议中,contains
比使用==
慢一点,因为第一个会尝试匹配子字符串。
答案 1 :(得分:1)
向量化操作提供了最快的运行速度:
df[(df.Name1 == "0") & (df.Name2 == "Z")]
ID Name1 Name2 3 4 0 Z 4 5 0 Z