带有拆分字符串的dataframe.loc



如何使用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测试每行是否至少有一个Trueboolean 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(",")]

最新更新