从pandas datafram的字符串列中删除零

2024-06-25 23:30:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据帧中有一列,其中的值如下所示:

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

我要删除所有零:

a)位于其他数字和字母前面(例如,00000000000010SG的情况下,我想删除这部分000000000000,保留{})。在

b)在类似20000000000992LG的情况下,我想删除这部分0000000000,并将2与{}合并。在

在str.stprip公司('0')只解决a部分),正如我检查过的。在

但这两种情况的正确解决方案是什么呢?在


Tags: 数据字母情况公司数字解决方案col1str
2条回答

我建议使用与Ed的答案类似的方法,但是使用regex来确保不是所有的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

这将用空格替换固定数量的0s,这不是动态的,但是对于给定的数据集,这是最简单的事情,除非你能更好地解释模式

相关问题 更多 >