Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在列名中搜索字符串并返回整个列_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 在列名中搜索字符串并返回整个列

Python 在列名中搜索字符串并返回整个列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,是否有方法在列名中搜索字符串或子字符串,并提取包含该特定字符串的整个列名 我的数据: 我想在数据框中搜索“total”并提取整个列(本例中的最后一列) 提前谢谢你 你可以试试- 如果要在列名中显式搜索诸如Total之类的关键字,请使用以下命令: 对于此虚拟数据: 说明、数量、单位成本(AED)、总成本(AED)、金额(xyz) 字符串1、3、3000、9000、9500 字符串1、3、3000、9000、9500 字符串1、3、3000、9000、9500 字符串1、3、3000、9000、9

是否有方法在列名中搜索字符串或子字符串,并提取包含该特定字符串的整个列名

我的数据:

我想在数据框中搜索“total”并提取整个列(本例中的最后一列)

提前谢谢你

你可以试试-


如果要在列名中显式搜索诸如
Total
之类的关键字,请使用以下命令:

对于此虚拟数据:

说明、数量、单位成本(AED)、总成本(AED)、金额(xyz)
字符串1、3、3000、9000、9500
字符串1、3、3000、9000、9500
字符串1、3、3000、9000、9500
字符串1、3、3000、9000、9500
字符串1、3、3000、9000、9500
字符串1、3、3000、9000、9500
请尝试以下代码:

将熊猫作为pd导入
进口稀土
df=pd.read\u csv('test.csv'))
打印(df)
col=[如果len(re.findall(r'\b(?:total | amount)\b',name.lower())!=0,则df.columns中名称的名称为]
如果连(col)=0:
打印(df.loc[:,col])

是否要在列名中搜索?提示:
df.columns
返回列表中的列df@MykolaZotko对但是可以有多个关键词,如“金额、总额、余额”等。这能回答你的问题吗?假设只有一个列名中有“Total”一词!这段代码寻找一个精确的匹配,而我想让代码在上面的DataFrame中甚至对“total”这样的子字符串也能工作。我做了一些编辑,看看这是否达到了目的!使
名称
小写,并搜索
总计
它会抛出一个
索引器
,因为
.iloc
需要数字索引,但它得到了
总计
。我已经在上面的评论中解释了我的整个问题@是的,很好。非常感谢你@anurag
>>> total_mask = df['Description'].str.contains('total|Total')
>>> total_mask
0     True
1    False
2     True
Name: Description, dtype: bool

>>> df.loc[total_mask,:]
          Description  Total Cost (AED)
0  Compensation Total             100.0
2        Total Amount              20.0