python将string对象更改为numb

2024-06-25 23:08:15 发布

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

我有一个880184*1数据帧,唯一的列不是整数对象就是字符串对象。我想把所有的字符串对象都改为0。如下所示:

index               column
.....               ......
23155     WILLS ST / MIDDLE POINT RD
23156                          20323
23157    400 Block of BELLA VISTA WY
23158                          19090
23159     100 Block of SAN BENITO WY
23160                          20474

现在的问题是数字和字符串都是“对象”类型,我不知道如何将类似字符串的对象更改为0,如下所示:

^{pr2}$

另一个问题是样本量太大,使得循环无法逐行修复。我想用一些类似的东西:

df.loc[df.column == ...] = 0

Tags: of数据对象字符串middledfindexcolumn
2条回答

可以用^{}将类型转换为数值,并传递errors='coerce',这样就可以得到NaN,因为那些不能转换成数字的。最后,您可以将NaN替换为零:

df["column"] = pd.to_numeric(df["column"], errors="coerce").fillna(0)
Out[15]: 
0        0.0
1    20323.0
2        0.0
3    19090.0
4        0.0
5    20474.0
Name: column, dtype: float64

如果需要整数值,请在末尾添加astype('int64')

^{pr2}$

尝试使用int()函数将所有内容转换为整数。 无法转换字符串,因此引发错误。把这个打包成一个“try”循环,你就准备好了。在

像这样:

def converter(currentRowObj):
    try:
        obj = int(currentRowObj)
    except:
        obj = 0
    return obj

相关问题 更多 >