Pandas DataFrame如何通过列序号而非列名完成列值校验过滤
问题解决方法
报错原因
df.columns[7]返回的是第8列(索引从0开始计数)的列名字符串,并非该列的数据集,因此不存在isin()方法,触发属性错误。
正确实现代码
有两种常用实现方式:
- 方式一:通过列序号获取列名后取值
df = df[df[df.columns[7]].isin(['P','C'])]
- 方式二:使用
iloc按位置直接取列数据
# iloc[:,7] 表示取所有行、索引为7的列数据,返回Series对象可直接调用isin方法 df = df[df.iloc[:, 7].isin(['P','C'])]
内容的提问来源于stack exchange,提问作者Alok Sharma
相关产品推荐
相关产品推荐

