簡體   English   中英

從pandas dataframe中的字符串列中刪除零

[英]Deleting zeros from string column in pandas dataframe

我的數據框中有一列,其中的值如下所示:

col1:
    00000000000012VG
    00000000000014SG
    00000000000014VG
    00000000000010SG
    20000000000933LG
    20000000000951LG
    20000000000957LG
    20000000000963LG
    20000000000909LG
    20000000000992LG

我想刪除所有零:

a)在其他數字和字母前面(例如,在00000000000010SG情況下,我想刪除此部分000000000000並保留10SG )。

b)在類似20000000000992LG情況下,我想刪除此部分0000000000並將2992LG聯合。

正如我檢查的那樣,str.stprip('0')只解決了a)部分。

但這兩種情況的正確解決方案是什么?

我會推薦類似於Ed的答案,但是使用正則表達式來確保不是所有的 0都被替換,並且不需要對0的數字進行硬編碼。

In [2426]: df.col1.str.replace(r'[0]{2,}', '', 1)
Out[2426]: 
0      12VG
1      14SG
2      14VG
3      10SG
4    2933LG
5    2951LG
6    2957LG
7    2963LG
8    2909LG
9    2992LG
Name: col1, dtype: object

僅替換第一個0字符串。

感謝@jezrael在我的回答中指出了一個小錯誤。

你可以這樣做

In[9]:
df['col1'] = df['col1'].str.replace('000000000000','')
df['col1'] = df['col1'].str.replace('0000000000','')
df

Out[9]: 
         col1
0        12VG
1        14SG
2        14VG
3        10SG
4      2933LG
5      2951LG
6      2957LG
7      2963LG
8      2909LG
9      2992LG

這將用空格替換固定數量的0秒,這不是動態的,但對於給定的數據集,這是最簡單的事情,除非你能更好地解釋模式

暫無
暫無

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

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