re.search()可以跳过过去的整数对象吗?

时间:2019-02-21 22:28:09

标签: python regex pandas

问题是不言自明的。我在pandas数据框中有一个包含int和str对象的列。当我尝试使用re.search()搜索它时,它无法运行,因为(我相信)某些列包含整数,并且它不知道该怎么做。

是否有某种方法可以解决此问题?我看不到忽略错误参数。

1 个答案:

答案 0 :(得分:0)

最好的做法是使用内置pandas.Series.str.match Docs的熊猫。通过将所有整数转换为字符串,它会自动“跳过”整数值。

import pandas as pd
df = pd.DataFrame(data={
                    'Col1': [...],
                    'Col2': [...]}
                 )
df['Col1'].str.match("*pattern*")

您可以调整模式以确保所有int字符串都不匹配。

>>> import pandas as pd
>>> df = pd.DataFrame(data={
                    'Col1': ["a string", "a second string", 123, 456, "another string"],
                    'Col2': [1, 2, 3, 4, 5]}
                 )
>>> df['Col1'].str.match("[^0-9]+")
0    True
1    True
2     NaN
3     NaN
4    True
Name: Col1, dtype: object