我有以下輸出Age'1 year old','14 years old', 'music store', '7 years old ','16 years old ',使用這行代碼后創建df['Age']=df['Age'].str.split('.', expand=True,n=0)[0]df['Age'].tolist()我想從數據集中刪除不以數字或數字 + 年 + 舊或數字 + 年 + 舊開頭的行(最好使用它的副本或過濾后的新行)。預期產出Age (in a new dataset filtered)'1 year old','14 years old', '7 years old ','16 years old ',我怎么辦?
2 回答

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
使用Series.str.contains
并創建一個布爾掩碼來過濾數據框:
m = df['Age'].str.contains(r'(?i)^\d+\syears?\sold')
df1 = df[m]
結果:
# print(df1)
Age
0 1 year old
1 14 years old
3 7 years old
4 16 years old
您可以測試正則表達式模式here
。

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
下面的代碼查找以撇號開頭、后跟數字的文本,并僅保留這些行:
df = pd.read_clipboard(sep=';')
df.loc[df.Age.str.match("\'\d+")]
Age
0 '1 year old',
1 '14 years old',
3 '7 years old ',
4 '16 years old ',
請注意,這僅限于撇號和數字,@Shubham 的解決方案涵蓋了更多
添加回答
舉報
0/150
提交
取消