📅  最后修改于: 2023-12-03 15:04:07.139000             🧑  作者: Mango
在数据分析过程中,有可能需要对列进行清理,将列中的非数字字符删除或替换为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的行或列,以进一步清理数据。