我有一个序列(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)
看起来您只需要一个
for
循环:顺便说一句
lambda x: 1 if x == True else 0
与int
基本相同,我相信您可以简单地使用.astype(int)
(未经测试)相关问题 更多 >
编程相关推荐