[英]Pandas removing all special characters from columns
我有一個帶有 '%' 列的數據框是所有列,而一列的最后一行有 '<1%'
Out[277]:
Year Conventional HMO PPO POS HDHP/SO
0 1988 73% 16% 11%
1 1993 46% 21% 26% 7%
2 1996 27% 31% 28% 14%
3 1999 10% 28% 39% 24%
4 2000 8% 29% 42% 21% 6%
. .
. .
. .
22 2018 <1% 16% 49% 29%
我想刪除列中的所有特殊字符。 我試過了:
df1.columns= df1.columns.str.replace('\w,'')
和
df.columns= df.columns.str.replace('[^a-zA-Z0-9]', '')
有了這兩個,我已經成功地擺脫了 '%' 符號。 但不是'<'。 做這樣的事情:
df1['Conventional']= df1['Conventional'].map(lambda x: ''.join([i for i in x if i.isdigit()]))
拋出錯誤:
類型錯誤:“浮動”對象不可迭代
理想情況下,我想在一行代碼中刪除整個數據幀中的所有特殊字符。
首先使用DataFrame.replace
by <%
:
df = df.replace(r'[<%]', '', regex=True)
或者通過所有非數值:
df = df.replace(r'\D+', '', regex=True)
然后將所有列設置為float
s,而不是先:
df.iloc[:, 1:] = df.iloc[:, 1:].astype(float)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.