📜  python pandas 从多列中删除非数字字符 - Python (1)

📅  最后修改于: 2023-12-03 15:04:07.139000             🧑  作者: Mango

Python Pandas从多列中删除非数字字符

在数据分析过程中,有可能需要对列进行清理,将列中的非数字字符删除或替换为NaN。

这里介绍一种使用Python的Pandas库来从多列中删除非数字字符的方法。

代码示例
import pandas as pd
import numpy as np

df = pd.DataFrame({'A': ['1', '2', '3', '4'],
                   'B': ['5.5', '6.1', '7.0', '8.3'],
                   'C': ['abc', '123', 'def', '456.789']})

df.replace('[^0-9\.]+', np.nan, regex=True, inplace=True)
df = df.astype(float)

print(df)
代码解释

首先我们创建一个包含三列的数据框。其中,第一列和第二列都是数字字符串,而第三列是包含数字和字符的字符串。

接下来,我们使用了Pandas库的.replace()方法,将非数字字符替换为NaN。正则表达式[^0-9\.]+表示匹配所有非数字和小数点的字符。

最后,我们将数据框中的所有数据转换为浮点型,以便进行数值分析。

运行代码后,输出的结果如下:

     A    B        C
0  1.0  5.5      NaN
1  2.0  6.1    123.0
2  3.0  7.0      NaN
3  4.0  8.3  456.789

可以看到,第一列和第二列中的数字字符串被正确解析为数字类型,而第三列中的非数字字符被替换为了NaN。

此外,还可以使用.dropna()方法删除包含NaN的行或列,以进一步清理数据。

参考资料