簡體   English   中英

檢查 substring 的列以分配具有值的新列

[英]Check a column for substring to assign new columns with values

這是我的 dataframe 有 2 列:

ID      CODES
36233   LEH,PW
6175    N/A
6242    
6680    MS,XL,JFK

在 CODES 列中,我需要識別逗號(“,”),然后計算逗號的數量並將其返回到 dataframe 中:

Output:

ID      CODES   HAS COMMA   NO. OF COMMAS
36233   LEH,PW  TRUE        1
6175    N/A     FALSE       0
6242            FALSE       0
6680  MS,XL,JFK TRUE        2

到目前為止,我已經嘗試過DF['HAS COMMA'] = np.where(DF['CODE'].str.contains(','),True, False)但這會在有空格的地方返回 TRUE。 :(

此外DF['NO OF COMMAs']=DF['CODE'].count(",")返回錯誤。

怎么樣:

df['HAS COMMA'] = df.CODES.str.contains(',').fillna(False)
df['NO. OF COMMA'] =  df.CODES.str.count(',').fillna(0)

印刷:

      ID      CODES  HAS COMMA  NO. OF COMMA
0  36233     LEH,PW       True           1.0
1   6175        N/A      False           0.0
2   6242        NaN      False           0.0
3   6680  MS,XL,JFK       True           2.0

Pandas 字符串方法未優化,因此 Python 列表理解對於此任務將更有效。 例如,對於具有 4k 行的 df,下面的代碼比等效的 pandas str 方法快大約 8 倍。

只需檢查df.CODES的每個值中是否存在逗號並決定是否計數。

df[['HAS COMMA', 'NO. OF COMMA']] = [[True, s.count(',')] if ',' in s else [False, 0] for s in df['CODES'].tolist()]

結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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