我想删除以“ TYPE”字样开头且不包含_1?
df =
TYPE_1 TYPE_2 TYPE_3 COL1
aaa asb bbb 123
Run Code Online (Sandbox Code Playgroud)
结果应为:
df =
TYPE_1 COL1
aaa 123
Run Code Online (Sandbox Code Playgroud)
目前,我正在手动删除这些列,但是,如果列数很大,此方法将不是很有效:
df = df.drop(["TYPE_2","TYPE_3"], axis=1)
Run Code Online (Sandbox Code Playgroud)
这是第五个答案,但我想展示filter数据框方法的强大功能,该方法使用正则表达式按列名称进行过滤。这将搜索不以 TYPE 开头或其中某处包含 _1 的列。
df.filter(regex='^(?!TYPE)|_1')
Run Code Online (Sandbox Code Playgroud)
可以使用列表理解。注意:axis = 1表示我们指的是该列,inplace=True也可以根据pandas.DataFrame.drop文档使用。
droplist = [i for i in df.columns if i.startswith('TYPE') and '_1' not in i]
df1.drop(droplist,axis=1,inplace=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3406 次 |
| 最近记录: |