我有多個資料集,其中包含一個公共列 - GuestCode。對于所有資料集,我想創建另一列來告訴我 GuestCode 是否在每一行中都包含字母。
我能夠使用以下代碼成功地為其中一個資料集執行此操作:
df['TestResult'] = df['GuestCode'].str.contains(r"[^a-zA-Z\s']", regex=True)
| 訪客代碼 | 測驗結果 |
|---|---|
| 5885 | 楠 |
| CCM6505 | 真的 |
我不是 100% 確定,但我認為這行得通,因為在這個資料集中,GuestCode 在資料框中被讀取為“物件”資料型別。
但是,當我在 GuestCode 中僅包含數值的資料集上嘗試相同的代碼時,相同的代碼不起作用,因為 GuestCode 被讀取為“浮點數”。收到一個后
AttributeError: Can only use .str accessor with string values!
我修改了代碼,但沒有得到正確的結果。
df['TestResult'] = df['GuestCode'].astype(str).str.contains(r"[^a-zA-Z\s']", regex=True)
| 訪客代碼 | 測驗結果 |
|---|---|
| 4445 | 真的 |
| CCM6515 | 真的 |
我沒有與正則運算式解決方案結婚,我只需要一種方法來成功識別我在 GuestCode 列中是否有字母字符。
提前致謝。
uj5u.com熱心網友回復:
字符類[^a-zA-Z\s']匹配除 a-zA-Z、空白字符或'
如果您只想檢查字符 A-Za-z,您可以使用
df['TestResult'] = df['GuestCode'].astype(str).str.contains(r"[a-zA-Z]", regex=True)
或者
df['TestResult'] = df['GuestCode'].astype(str).str.match(r"[a-zA-Z]")
輸出
GuestCode TestResult
0 4445 False
1 CCM6515 True
uj5u.com熱心網友回復:
要檢查每一行是否包含字母,您可以使用:
df['TestResult'] = df['GuestCode'].astype(str).str.contains('[A-Za-z]')
要檢查所有字符是否都是字母,您可以使用:
df['TestResult'] = df['GuestCode'].astype(str).str.isalpha()
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486160.html
