首页 > 解决方案 > Python如何在应该只是数字的列中替换非数字值

问题描述

Python如何在应该只是数字的列中替换非数字值

目标是在 ["campaignid"] 列中找到所有非数值,并为它们分配一个数值。

dataframe:


2790    8/31/2019   143679198                   
2791    8/10/2019   143679198       
2792    8/10/2019   brand           
2793    8/10/2019   brand   
2794    8/10/2019   143679198
2795    8/10/2019   site
2796    8/10/2019   site

我的尝试


cw= cw["campaignid"].replace(cw["campaignid"]({'brand': "283494005"}), inplace=True)

#error: NoneType' object is not subscriptable



# Tried with for loop as well, but isnt replacing it.

count= 0

for x in cw.campaignid:

    if x == "brand":
        x = "283494005"
        print(f"brand now is.. {x}")


    elif x == "site":
        x = "283494007"
        print(f"site now is.. {x}")


    else:
        count+= 1

期望的结果

只有数字值

2790    8/31/2019   143679198                   
2791    8/10/2019   143679198       
2792    8/10/2019   283494005
2793    8/10/2019   283494005
2794    8/10/2019   143679198
2795    8/10/2019   283494007
2796    8/10/2019   283494007


标签: pythonpandasstr-replaceregexp-replace

解决方案


你可以试试:

cw["campaignid"]=cw["campaignid"].replace({'brand':283494005,'site':283494007}).astype(int)

推荐阅读