我有一个包含大量列的数据框,使用后缀' _o'。有没有办法删除所有具有' _o'在其标签的最后?
在this post我已经看到了使用过滤功能删除以某些内容开头的列的方法。但是如何放弃那些以某种东西结束的东西呢?
答案 0 :(得分:4)
有几种方法。
<强> Pandonic 强>
df = df.loc[:, ~df.columns.str.endswith('_o')]]
df = df[df.columns[~df.columns.str.endswith('_o')]]]
列表理解
df = df[[x for x in df if not x.endswith('_o')]]
df = df.drop([x for x in df if x.endswith('_o')], 1)
答案 1 :(得分:1)
要在此处正确使用df.filter()
,您可以将其与lookbehind:
>>> df = pd.DataFrame({'a': [1, 2], 'a_o': [2, 3], 'o_b': [4, 5]})
>>> df.filter(regex=r'.*(?<!_o)$')
a o_b
0 1 4
1 2 5
答案 2 :(得分:0)
这可以通过仅用所需列重新分配数据框来完成
AzureServiceTokenProvider