猿问

如何在整个 Pandas 数据框中搜索字符串并获取包含它的列的名称?

我想在包含给定字符串的数据帧(“类别”)中查找列的名称。


categories


    Groceries   Electricity Fastfood    Parking 

0   SHOP        ELCOMPANY   MCDONALDS   park

1   MARKET      ELECT       Subway      car

2   market      electr      Restauran   247 

假设我想在整个数据框中搜索字符串“MCDO”。答案应该是“快餐”。我尝试使用 str.contains 但它似乎不适用于数据帧。


我怎样才能做到这一点?谢谢你。


慕容3067478
浏览 424回答 3
3回答

青春有我

如果您可以搜索整个字符串,那就更容易了,(df == 'MCDONALDS').any().idxmax()否则使用申请,df.apply(lambda x: x.str.startswith('MCDO').any()).idxmax()

白衣非少年

也可以for为此使用循环:def strfinder(df, mystr):    for col in df:        for item in df[col]:            if mystr in item:                return colprint(strfinder(df, 'MCDO'))要获取可能包含字符串的所有列,例如在下面修改后的数据框中:    Groceries   Electricity  Fastfood    Parking 0   SHOP        ELCOMPANY   MCDONALDS   park1   MARKET      MCDON       Subway      car2   market      electr      Restauran   247 可以使用“列表理解”:mystr = 'MCDO'outlist = [ col             for col in df             for item in df[col]            if mystr in item    ]print(outlist)输出:['Electricity', 'Fastfood']

翻翻过去那场雪

或使用:print(df.apply(lambda x: x.str.contains('MCDO')).replace(False,np.nan).dropna(axis=1,how='all').columns.item())输出:Fastfood
随时随地看视频慕课网APP

相关分类

Python
我要回答