问题是不言自明的。我在pandas数据框中有一个包含int和str对象的列。当我尝试使用re.search()搜索它时,它无法运行,因为(我相信)某些列包含整数,并且它不知道该怎么做。
是否有某种方法可以解决此问题?我看不到忽略错误参数。
答案 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