Python 在数据框的每一行中搜索一个字符串,并返回找到的列名
是否有方法在数据框中查找字符串并在匹配时返回列名 在下面的示例中,我尝试查找出现“SRC”的列,不确定是否已关闭,但它返回所有列名,而不仅仅是相关列名。我肯定我在做傻事Python 在数据框的每一行中搜索一个字符串,并返回找到的列名,python,pandas,Python,Pandas,是否有方法在数据框中查找字符串并在匹配时返回列名 在下面的示例中,我尝试查找出现“SRC”的列,不确定是否已关闭,但它返回所有列名,而不仅仅是相关列名。我肯定我在做傻事 df = pd.DataFrame({'col1':['foo SRC','bar','baz'], 'col2':['foo','bar','baz'],'col3':['SRC','bar','SRC'], 'col4':['SRC','SRC','SRC']}) df['col_lis
df = pd.DataFrame({'col1':['foo SRC','bar','baz'], 'col2':['foo','bar','baz'],'col3':['SRC','bar','SRC'],
'col4':['SRC','SRC','SRC']})
df['col_list']= '/'.join(df.apply(lambda x : x.str.contains('SRC')).any().loc[lambda x : x].index)
Actual Result:
---------------------------------------------
col1 |col2 |col3 |col4 |col_list
--------|-------|-------|-------|----------------
foo SRC |foo |SRC |SRC |col1/col3/col4
bar |bar |bar |SRC |col1/col3/col4
baz |baz |SRC |SRC |col1/col3/col4
Expected:
col1 |col2 |col3 |col4 |col_list
--------|-------|-------|-------|----------------
foo SRC |foo |SRC |SRC |col1/col3/col4
bar |bar |bar |SRC |col4
baz |baz |SRC |SRC |col3/col4
用于:
或使用和df.dot
:
df['col_list']=df.apply(lambda x:
x.str.contains('SRC',na=False)).dot(df.columns + '/').str[:-1]
print(df)
谢谢很快:)总是很高兴看到
dot
solution:)+1
df['col_list']=df.apply(lambda x:
x.str.contains('SRC',na=False)).dot(df.columns + '/').str[:-1]
print(df)
col1 col2 col3 col4 col_list
0 foo SRC foo SRC SRC col1/col3/col4
1 bar bar bar SRC col4
2 baz baz SRC SRC col3/col4