熊猫过滤值在一列中
问题描述:
我有一个数据帧这样的:熊猫过滤值在一列中
与114行。前6行CPULabel的值将重复19次。 我尝试使用下面的命令来筛选包含字符串数据的“快”或“慢”:
df[(df['CPULabel']=='BP100_Fast') | (df['CPULabel']=='100LoBW_Fast') | (df['CPULabel']=='100HiBW_Fast')]
df[(df['CPULabel']=='BP100_Slow') | (df['CPULabel']=='100LoBW_Slow') | (df['CPULabel']=='100HiBW_Slow')]
但有时不同的人会有不同的名字,在唯一的共同点是字符串“快速”或'慢'。我之前尝试过正规快递,但没有成功。 无论如何过滤或选择列上的某些值? 非常感谢。
答
你可以尝试str.contains
用正则表达式(?i)fast|(?i)slow
,这将拿起含忽略的情况下,或者fast
或slow
字符串:
df[df['CPULabel'].str.contains("(?i)fast|(?i)slow")]
例:
df = pd.DataFrame({"CPULabel": ["BP100_Fast", "BP100_Slow", "BP100"]})
df
# CPULabel
#0 BP100_Fast
#1 BP100_Slow
#2 BP100
df[df['CPULabel'].str.contains("(?i)fast|(?i)slow")]
# CPULabel
#0 BP100_Fast
#1 BP100_Slow
正是我想要的是。非常感谢你。 – Dogod