我有一個 Pandas 資料框,想過濾到“標題”列中包含特定條件的所有行。我要過濾的行是所有包含格式“(Axx)”(其中 xx 是 2 個數字)的行。“標題”列中的資料不僅僅包含“(Axx)”資料。“標題”列中的資料如下所示:
“some_string (Axx)”
我一直在用不同的方法玩一些,但似乎無法理解。我認為我得到的最接近的是:
df.filter(regex=r'(D\d{2})', axis=0))
但它不正確,因為條目沒有被過濾。
uj5u.com熱心網友回復:
使用Series.str.contains與逃生(),并$在字串和過濾器的結束boolean indexing:
df = pd.DataFrame({'Title':['(D89)','aaa (D71)','(D5)','(D78) aa','D72']})
print (df)
Title
0 (D89)
1 aaa (D71)
2 (D5)
3 (D78) aa
df1 = df[df['Title'].str.contains(r'\(D\d{2}\)$')]
print (df1)
4 D72
Title
0 (D89)
1 aaa (D71)
如果 ned 匹配只(Dxx)使用Series.str.match:
df2 = df[df['Title'].str.match(r'\(D\d{2}\)$')]
print (df2)
Title
0 (D89)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/377067.html
下一篇:洗掉嵌套字典中的專案
