在pandas中选择指定级别标签包含特定字符串的所有列

2 投票
1 回答
670 浏览
提问于 2025-04-18 17:04

我想写:

mydf[mydf.columns.get_level_values('level_2').str.contains('mystring')]

但是这样不行。这里正确的写法是什么呢?

1 个回答

1

尝试一下:

idx = mydf.columns.get_level_values('level_2').to_series().str.contains('mystring')
mydf.loc[:, idx.values]

或者:

idx = mydf.columns.get_level_values('level_2').map(lambda t: 'mystring' in t)
mydf.loc[:, idx]

撰写回答