繁体   English   中英

查找名称包含固定列中特定值的列

[英]Find column whose name contains a specific value that is in a fixed column

我有一个带有列名的 dataframe,我想找到包含某个值的那个。 我正在像“...._segment”这样的列名中搜索“segment”列中的值。 我希望将列名作为字符串或变量返回,因此稍后我可以正常使用 df['name'] 或 df[name] 访问该列。 在此处输入图像描述

我不知道您是要获取包含您想要的字符串的列名,还是至少有一个包含您想要的字符串的值的列的列名。

如果 dataframe 是:

In [1]: import pandas as pd 
   ...: df = pd.DataFrame({'a_1': ['b_1', 'b_2'], 'b_1': ['a_1', 'a_2']})                                                                             
In [2]: df                                                                                                                                            
Out[2]: 
   a_1  b_1
0  b_1  a_1
1  b_2  a_2

对于第一种情况,如果要查找与a_*匹配的所有列名:

In [3]: import re                                                                                                                                     
In [4]: columns = [col for col in df.columns if isinstance(col, str) and re.match('a_.*', col)]                                                       
In [5]: columns                                                                                                                                       
Out[5]: ['a_1']

对于第二种情况,如果要查找至少有一个值与a_.*匹配的所有列:

In [6]: columns = [col for col, ser in df.iteritems() if ser.str.match('a_.*').any()]                                                                 
In [7]: columns                                                                                                                                       
Out[7]: ['b_1']

其中:

df.iteritems :返回(列名,列值(系列))对的迭代器。

Series.any :如果系列中的任何值为True True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM