[英]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
並將2
與992LG
聯合。
正如我檢查的那樣,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.