[英]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.