如何在pandas中使用条件格式?

2024-10-01 04:55:45 发布

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

我有以下建议:

Invoice number
.5
.3
02

我想替换“.”,因为捕捉不正确。此操作成功,代码如下:

df['Invoice number'] = df['Invoice number'].astype(str).str.replace(r"[^a-zA-Z0-9\$?!]", '')

但是,数字前面放置了一个0,从而产生以下df:

Invoice number
05
03
02

我试过以下方法

for i, row in df.iterrows():
    if str(i).startswith('.'):  
        df.loc[i, 'KvK'] = df['KvK'].astype(str).str.replace(r"[^a-zA-Z0-9\$]", '')
        df.loc[i,'Factuurnummer'] = df['Factuurnummer'].astype(str).str.replace(r"[^a-zA-Z0-9\$]", '')

然而,这是行不通的。什么也没发生

我想要以下输出:

invoice # 
5
3
02

Tags: 方法代码numberdf数字invoiceloc建议
1条回答
网友
1楼 · 发布于 2024-10-01 04:55:45

您可以使用由series.str.startswithseries.masknp.where创建的掩码执行此操作:

s = df['Invoice number']
s.mask(s.str.startswith('.'),s.str.replace(".",""))

或者,如果您喜欢使用regex模式,也可以使用:

df['Invoice number'].str.replace(r'^\.', '')

0     5
1     3
2    02
Name: Invoice number, dtype: object

相关问题 更多 >