检测数据帧熊猫的所有列中的值是否为数字,并将其擦除

我有一个这样的数据帧


   col  col2

0   1     1

1   B     1

2   3     D

3   4     1

4   A     2

5   2     C

6   3     2

我会删除所有 caracter 并只保留所有列的值,如果它是一个字符,则分配 -1。像这样的东西


   col  col2

0    1     1

1   -1     1

2    3    -1

3    4     1

4   -1     2

5    2    -1

6    3     2

我怎么能用蟒蛇做到这一点,提前谢谢你


烙印99
浏览 98回答 3
3回答

慕的地10843

国际自然保护联盟df.apply(pd.to_numeric, errors='coerce').fillna(-1, downcast='infer') # comment by PirOut[480]:    col  col20    1     11   -1     12    3    -13    4     14   -1     25    2    -16    3     2或类似的东西df.mask(df.applymap(ord)>64,-1)Out[479]:   col col20   1    11  -1    12   3   -13   4    14  -1    25   2   -16   3    2

沧海一幻觉

我们可以使用 df,然后使用 with 将无效数字设置为 ,然后使用 -1 ,然后 unstack() 返回到原始形状,最后在必要时使用转换为 int:stack()pd.to_numericerrors = 'coerce'NaNfillnaastype(int)pd.to_numeric(df.stack(),errors='coerce').fillna(-1).unstack().astype(int)   col  col20    1     11   -1     12    3    -13    4     14   -1     25    2    -16    3     2

元芳怎么了

可以使用该函数将数据框中与 字符对应的值替换为 。df.replace-1试试这个:df = df.replace(r"[A-Za-z]", -1, regex=True)print(df)输出: col1 col20   1   11  -1   12   3  -13   4   14  -1   25   2  -16   3   2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python