我有(df)如下所示的資料框,我想洗掉包含特殊字符和數字的記錄。
輸入
df
A B
ASR IN
33AB ST
AS_TY YT
45 TYY IN
TY HG SG
TRD US
YTR WS
預期輸出
A B
ASR IN
TRD US
YTR WS
如何在 pandas 資料框中實作這一點
uj5u.com熱心網友回復:
這是一個正則運算式的好作業。
如果您只想使用 A:
out = df[df['A'].str.match('(?i)[a-z] $')]
對于所有列:
out = df[df.apply(lambda c: c.str.match('(?i)[a-z] $')).all(1)]
輸出:
A B
0 ASR IN
5 TRD US
6 YTR WS
uj5u.com熱心網友回復:
查看isalpha
df[df.A.astype(str).str.isalpha()]
uj5u.com熱心網友回復:
您可以使用正則運算式匹配來查找相同的,例如
df[df.A.str.contains('/^[A-Za-z] $/', 正則運算式=真, na=假)]
uj5u.com熱心網友回復:
最快的方法是使用輔助列來屏蔽包含非字母數字字符的行,如下所示:
import pandas as pd
# dummy example
df = pd.DataFrame({'A' : ['ABC', 'acfx', 'a34xxf_', 'a_9R', 'rty']})
# create helper column
df['mask'] = df['A'].apply(lambda x : x.isalnum())
# get the rows that contain only alpha numerical characters
df[df['mask']==True].drop(['mask'], axis = 1)
>>>
A
0 ABC
1 acfx
4 rty
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/491344.html
標籤:Python python-3.x 熊猫 数据框
