如何在数据帧列中查找序列

2024-09-30 22:11:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个序列(str值),我需要在dataframe列中查找它的存在性,并为每个str值创建一个新列,其中包含1/0值。下面是我是如何做的,需要帮助写一个函数来更有效地完成这项任务。谢谢

旅游, 啤酒厂, 披萨, 餐厅, 食物, 酒店和酒店;旅行

Mydata['Tours'] = Mydata.categories.str.contains('Tours', regex=False)
Mydata['Breweries'] = Mydata.categories.str.contains('Breweries', regex=False)
Mydata['Pizza'] = Mydata.categories.str.contains('Pizza', regex=False)
Mydata['Restaurants'] = Mydata.categories.str.contains('Restaurants', regex=False)
Mydata['Food'] = Mydata.categories.str.contains('Food', regex=False)
Mydata['Hotels & Travel'] = Mydata.categories.str.contains('Hotels & Travel', regex=False)

Mydata['Tours'].apply(lambda x: 1 if x == True else 0)
Mydata['Breweries'].apply(lambda x: 1 if x == True else 0)
Mydata['Pizza'].apply(lambda x: 1 if x == True else 0)
Mydata['Restaurants'].apply(lambda x: 1 if x == True else 0)
Mydata['Food'].apply(lambda x: 1 if x == True else 0)
Mydata['Hotels & Travel'].apply(lambda x: 1 if x == True else 0)

Tags: lambdafalsetrueifelseregexcategoriesapply
1条回答
网友
1楼 · 发布于 2024-09-30 22:11:17

看起来您只需要一个for循环:

tags = ['Tours','Breweries','Pizza','Restaurants','Food','Hotels & Travel']

for tag in tags:
    Mydata[tag] = Mydata.categories.str.contains(tag, regex=False)
    Mydata[tag].apply(lambda x: 1 if x == True else 0)

顺便说一句lambda x: 1 if x == True else 0int基本相同,我相信您可以简单地使用.astype(int)(未经测试)

相关问题 更多 >