2017-02-27 105 views
0

我有一個數據幀這樣的:熊貓過濾值在一列中

enter image description here

與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')] 

但有時不同的人會有不同的名字,在唯一的共同點是字符串「快速」或'慢'。我之前嘗試過正規快遞,但沒有成功。 無論如何過濾或選擇列上的某些值? 非常感謝。

回答

1

你可以嘗試str.contains用正則表達式(?i)fast|(?i)slow,這將拿起含忽略的情況下,或者fastslow字符串:

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 
+0

正是我想要的是。非常感謝你。 – Dogod