Python 只包含数值的DF列

Python 只包含数值的DF列,python,pandas,Python,Pandas,我有两列的DF。两者都包含数字值以及符号和字母 我需要创建两个只包含数字的新列。不能删除或删除任何内容-保持初始订单不变很重要 我试过了 > df["PRIMARY"]=df['PRIMARY PHONE'].filter(i for i in s if i.isdigit()) 它不起作用,因为最初我的专栏是obj。 我需要得到(作为一个例子)从PL73)67只有7367为每个细胞 请帮助您正在查找地图: def提取数量: 返回“”。join(如果x.isdigit

我有两列的DF。两者都包含数字值以及符号和字母

我需要创建两个只包含数字的新列。不能删除或删除任何内容-保持初始订单不变很重要

我试过了

> df["PRIMARY"]=df['PRIMARY PHONE'].filter(i for i in s if i.isdigit())
它不起作用,因为最初我的专栏是obj。 我需要得到(作为一个例子)从PL73)67只有7367为每个细胞


请帮助

您正在查找地图:

def提取数量:
返回“”。join(如果x.isdigit(),则x代表str中的x)
df[“PRIMARY”]=df[“PRIMARY PHONE”].map(extract_num)

替换除数字以外的所有内容,并将字符串转换为整数

df['PRIMARY'] = pd.to_numeric(
    df['PRIMARY PHONE'].str.replace('[^\d]', '', regex=True),
    errors='coerce'
)

是的,看起来是一个可能的解决方案,但是在函数中给出了一个错误int对象不是iterablecAdd
str
(我已经更新了我的答案),对于中大型数据集,这将大大降低速度@MayyaLihovodovWas在100+K行上速度非常快无法将浮点转换为naninteger@MayyaLihovodov修好了。