我有 5000 行的“ABC”列。目前,列的 dtype 是对象。大多数情况下它具有字符串值,但有些值 dtype 不是字符串,我想找到所有这些行并修改这些行。栏目如下:
1 abc
2 def
3 ghi
4 23
5 mno
6 null
7 qwe
8 12-11-2019
...
...
...
4900 ert
5000 tyu
在上述情况下,我可以使用 for 循环找出没有所需 dtype 的行。我只是想知道,是他们解决这个问题的更好方法。
注意:我正在使用熊猫。
我有 5000 行的“ABC”列。目前,列的 dtype 是对象。大多数情况下它具有字符串值,但有些值 dtype 不是字符串,我想找到所有这些行并修改这些行。栏目如下:
1 abc
2 def
3 ghi
4 23
5 mno
6 null
7 qwe
8 12-11-2019
...
...
...
4900 ert
5000 tyu
在上述情况下,我可以使用 for 循环找出没有所需 dtype 的行。我只是想知道,是他们解决这个问题的更好方法。
注意:我正在使用熊猫。
您可以使用 map 获取列条目的类型:
df['ABC'].map(type)
因此,要过滤所有未存储为 str 的值,您可以使用:
df['ABC'].map(type) != str
但是,如果您只想检查某些行是否包含具有特殊格式(如日期)的字符串,则可以使用正则表达式进行检查,例如:
df['ABC'].str.match('[0-9]{4}-[0-9]{2}-[0-9]{2}')
但是,当然,这不是确切的日期检查。例如,它也会返回True类似的值0000-13-91,但这只是为了给你一个想法。