我一直使用自己的自定义导入脚本将数据从Pandas Dataframe导入到postgres数据库中。不幸的是,我的数据并不整齐,导致我的每一列都被解析为文本。有什么方法可以获得某个列值不是数字的条目吗?我的计划是删除这些记录并将列转换为数字类型
谢谢!
答案 0 :(得分:3)
获取没有数字的记录,然后你必须使用以下正则表达式:
DELETE FROM myrecords WHERE record ~ '^[^0-9]+$';
这里,方括号外的^
字符表示字段的开头,$
字符表示字段的结尾,我们要求中间的所有字符都是非数字。 +表示应该至少有一个这样的字符。如果我们还允许空字符串,则正则表达式看起来像^[^0-9]*$
。
如果你想要包含数字和小写字母的记录,那么我希望有一个正则表达式:
DELETE FROM myrecords WHERE record ~ '[0-9a-z]';