3 回答
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
TA贡献2041条经验 获得超4个赞
你是这个意思吗?
df['CAT'].apply(lambda x: x if isinstance(x, list) else None)
0 [Long Sleeves, Jacket]
1 None
2 None
Name: CAT, dtype: object
![?](http://img1.sycdn.imooc.com/545867280001ed6402200220-100-100.jpg)
TA贡献1856条经验 获得超11个赞
你也可以使用apply
像
df[df.CAT.apply(type) == list] PRDS_ID CAT PRICE 0 A1 [Long Sleeves, Jacket] 85
df.CAT.apply(type)
然后将为您提供Series
每行的对象类型通过比较
df.CAT.apply(type) == list
我们可以得到布尔值来进行索引
![?](http://img1.sycdn.imooc.com/54586653000151cd02200220-100-100.jpg)
TA贡献1872条经验 获得超3个赞
PANDAS 细胞没有istype方法;这是针对 Python 基础对象和其他实现该运算符的对象。相反,您必须将检查包装在应用于每个单元格内容的 lambda 函数中:您引用单元格内的 Python 对象,并测试它。
>>> df[df.iloc[:,1].map(lambda x: type(x) == list)]
PRDS_ID CAT PRICE
0 A1 [Long Sleeves, Jacket] 85
>>> df[df.iloc[:,1].map(lambda x: type(x) == str)]
PRDS_ID CAT PRICE
1 B1 Shoes 55
2 A2 Skirt 40
添加回答
举报