【发布时间】:2018-11-24 13:56:07
【问题描述】:
我是 Python 新手,需要帮助。我尝试搜索,但找不到与我需要的相关的帖子。
我有一个数据框,其中包含一个名为“饮食”的列,其中包含许多类似的值,例如“仅素食”、“主要素食”、“严格素食”、“素食”等。如何将这些值组合成一个名为说“素食”?
【问题讨论】:
-
请发布示例输入和预期输出。
我是 Python 新手,需要帮助。我尝试搜索,但找不到与我需要的相关的帖子。
我有一个数据框,其中包含一个名为“饮食”的列,其中包含许多类似的值,例如“仅素食”、“主要素食”、“严格素食”、“素食”等。如何将这些值组合成一个名为说“素食”?
【问题讨论】:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'col1': ['Only Vegetarian', 'Mostly Vegetarian', 'Strictly Vegetarian', 'Veggie','Meat']})
df1['col2'] = np.where(df1.col1.str.contains('Vege'), 'Vegeterian', 'Not Vegeterian')
【讨论】:
您可以通过在函数中编码规则并使用pd.Series.apply 来创建一个虚拟变量
def check_veg(x):
# The elipse below signifies you providing all the values somehow
if x in ["Veggie", "Mostly Vegetarian", ...]:
return 1
else:
return 0
df["isVeg"] = df["diet"].apply(check_veg)
【讨论】: