如何使用split匹配列中转换为str的int??
personid = '23'
cond = (personid == x for x in df['wait'].str.split(","))
rows = df.loc[cond, :]
CCD_ 1包含str-like";2,13,23";
目前返回Empty DataFrame
如果将expand=True
添加到Series.str.split
,则通过拆分的值获得具有新列fileld的DataFrame,然后通过DataFrame.eq
通过==
进行比较,并通过DataFrame.any
测试每行是否至少有一个True
。boolean indexing
:的最后一个过滤器
#personid is string - `''`
personid = '23'
cond = df['wait'].str.split(",", expand=True).eq(personid).any(axis=1)
rows = df[cond]
如果需要匹配df['wait']
0:中的整数值
#personid is integer
personid = 23
cond = df['wait'].str.split(",", expand=True).astype(float).eq(personid).any(axis=1)
rows = df[cond]
您的解决方案应该更改:
cond = [any(y == personid for y in x) for x in df['wait'].str.split(",")]