高效检索部分字符串匹配的列
在数据操作领域,在数据帧中查找特定列可能是常见的需求。但是,如果您需要在列名称中搜索特定模式但忽略精确匹配,该怎么办?例如,如果您有“spike-2”、“hey spike”和“spiked-in”等名称,并且想要查找包含“spike”的任何列,您可能会遇到一些障碍。
问题:
识别名称中包含指定字符串的列(即使不是完全匹配)也可能具有挑战性。
解决方案:
为了克服这个问题,请在数据帧的列中使用全面的循环,检查每个名称中所需的字符串。这可以通过列表理解来实现:
<code class="python">[col for col in df.columns if 'spike' in col]</code>
此代码段生成一个包含满足指定条件的所有列名称的列表。
示例:
考虑以下数据框:
<code class="python">data = {'spike-2': [1,2,3], 'hey spke': [4,5,6], 'spiked-in': [7,8,9], 'no': [10,11,12]} df = pd.DataFrame(data) spike_cols = [col for col in df.columns if 'spike' in col]</code>
输出:
['spike-2', 'spiked-in']
替代方法:
对于更简洁的解决方案,请考虑使用过滤器方法:
<code class="python">df2 = df.filter(regex='spike')</code>
此方法会生成仅包含满足指定正则表达式条件的列的数据框:
spike-2 spiked-in 0 1 7 1 2 8 2 3 9
通过应用这些技术,您可以有效地检索列在数据框中,即使它们的名称与所需的字符串不完全匹配。
以上是如何有效地检索 DataFrame 中部分字符串匹配的列?的详细内容。更多信息请关注PHP中文网其他相关文章!