【发布时间】:2019-05-09 11:03:33
【问题描述】:
我正在尝试在 pandas 中创建一个条件列。这是数据框的样子。
data = [{"owner" : "john", "dog" : 'magie', "dog_is_fluffy" : 1},
{"owner" : "john", "dog" : 'stellar', "dog_is_fluffy" : 0},
{"owner" : "lisa", "dog" : 'mollie' , "dog_is_fluffy" : 0},
{"owner" : "lisa", "dog" : 'rex', "dog_is_fluffy" : 0},
{"owner" : "john", "dog" : 'luns', "dog_is_fluffy" : 1}]
df = pd.DataFrame(data)
如您所见,我的数据显示了狗及其主人。我们也知道狗是否蓬松。我想创建两列fluffy_dogs_owned 和owner_has_fluffy_dog。
我要找的结果是:
data_result = [{"owner" : "john", "dog" : 'magie', "dog_is_fluffy" : 1, "fluffy_dogs_owned" : 2, "owner_has_fluffy_dog" : 1},
{"owner" : "john", "dog" : 'stellar', "dog_is_fluffy" : 0, "fluffy_dogs_owned" : 2, "owner_has_fluffy_dog" : 1},
{"owner" : "lisa", "dog" : 'mollie' , "dog_is_fluffy" : 0, "fluffy_dogs_owned" : 0, "owner_has_fluffy_dog" : 0},
{"owner" : "lisa", "dog" : 'rex', "dog_is_fluffy" : 0, "fluffy_dogs_owned" : 0, "owner_has_fluffy_dog" : 0},
{"owner" : "john", "dog" : 'luns', "dog_is_fluffy" : 1, "fluffy_dogs_owned" : 2, "owner_has_fluffy_dog" : 1}]
df_result = pd.DataFrame(data_result)
我考虑过使用df.groupby() 和np.where,但到目前为止我还无法使用。有任何想法吗?
【问题讨论】:
标签: python-3.x pandas numpy where pandas-groupby