python - 检测数据框熊猫的所有列中的值是否为数字并将其删除
问题描述
我有一个这样的数据框
col col2
0 1 1
1 B 1
2 3 D
3 4 1
4 A 2
5 2 C
6 3 2
我会删除所有字符并仅在所有列上保留值,如果它是字符则分配 -1。像这样的东西
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
我怎么能用python做到这一点,提前谢谢你
解决方案
IIUC
df.apply(pd.to_numeric, errors='coerce').fillna(-1, downcast='infer') # comment by Pir
Out[480]:
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
或者类似的东西
df.mask(df.applymap(ord)>64,-1)
Out[479]:
col col2
0 1 1
1 -1 1
2 3 -1
3 4 1
4 -1 2
5 2 -1
6 3 2
推荐阅读
- flask-assets - 烧瓶资产 append_path() catch-22
- javascript - TypeError:无法读取未定义 jQuery 的属性“顶部”
- php - PHP 和 Ruby 上的相同代码给出不同的结果
- c# - liskov 替换原则再次 - 每个方法覆盖都违反了原则
- python-3.x - Karatsuba 递归代码无法正常工作
- javascript - 在类标签内反应渲染而不是 id
- ios - iOS 推送通知自签名证书
- java - 如何使用 SpringBatch 使用 XSSFSheetXMLHandler.SheetContentsHandler 指定日期格式?
- python - 如何在 while 循环中删除“浮动对象不可迭代”问题
- php - PHP PayPal SDK V2 GetExpressCheckoutDetails 等效