【发布时间】:2020-01-15 02:14:55
【问题描述】:
我有一个包含很多列的大型数据框,并希望根据列名上的字符串操作删除一些。
考虑以下示例:
df_tmp = pd.DataFrame(data=[(1,2,3, "foo"), ("bar", 4,5,6), (7,"baz", 8,9)],
columns=["test", "anothertest", "egg", "spam"])
现在,我想删除 列名 包含test 的所有列;我试图调整给出here(列内容上的字符串操作)和here(解决名称)的答案无济于事。
df_tmp = df_tmp[~df_tmp.index.str.contains("test")]
# AttributeError: Can only use .str accessor with string values!
df_tmp[~df_tmp.name.str.contains("test")]
# AttributeError: 'DataFrame' object has no attribute 'name'
有人能指出我正确的方向吗? 提前致谢。 :)
【问题讨论】:
-
use :
df_tmp.loc[:,~df_tmp.columns.str.contains("test")]您的代码不起作用,因为您检查的是索引而不是列,返回True列的正确方法是通过df.loc[]
标签: python-3.x string pandas