如何在Pandas DataFrame中筛选名称以eta开头的列?
解决Pandas只选中eta列的问题
你遇到的问题是df.filter(like='eta')会把theta也选上,因为theta的列名里包含"eta"这个子串,like参数会匹配所有包含该字符串的列名。给你几个靠谱的解决方法:
最直接的方式:直接用方括号指定列名
如果你要得到Series类型的结果:df['eta']要是想得到DataFrame类型(保持二维结构):
df[['eta']]用filter的正则精准匹配
你之前试的pattern='^eta'其实在Pandas里是有效的,它只匹配以eta开头的列,theta开头是th,本来就不会被选中,可能你之前操作有误?如果要完全匹配eta列名,避免后续新增类似列名时出错,建议用首尾锚点的正则:df.filter(pattern='^eta$')用loc方法指定列
这种写法更清晰,适合同时筛选行和列的场景:df.loc[:, 'eta'] # 返回Series df.loc[:, ['eta']] # 返回DataFrame
内容的提问来源于stack exchange,提问作者AlexLee
相关产品推荐
相关产品推荐

