簡體   English   中英

熊貓從列中刪除所有特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM