在pandas DataFrame中有效地将字符串转换为适当的数字类型

Lam*_*829 2 python pandas

我正在处理pandas DataFrames,其中列可能包含表示数字的字符串,可能包含意外的非数字字符,字符串表示的数字可能是float或int类型.例如,对于625452242.95的浮点数,DataFrame可能包含类似"$ 625,452,242.95"的内容,对于等于53000395的int,可能包含"53.000.395".数据框架正在从CSV文件中读取,并且可能非常大.

将DataFrame中的所有此类字符串转换为适当的数字类型的最有效方法是什么?谢谢.

wai*_*kuo 5

您也可以尝试替换这些符号和分隔符:

In [27]: df = pd.DataFrame([['$1,111'], ['$2,222']])

In [28]: df
Out[28]: 
        0
0  $1,111
1  $2,222

In [29]: df[0] = df[0].str.replace(r'[$,]', '').astype('float')

In [30]: df
Out[30]: 
      0
0  1111
1  2222
Run Code Online (Sandbox Code Playgroud)