Pandas-Dataframe-Python中多观测特征到单观测特征的转换
我有一个数据框,其中包含列(预索引)的母亲ID和多个观察值,如下所示: 我想将多个观测特征(预糖尿病)转换为每个母亲ID具有单个观测的特征 为此,我将创建一个新的数据帧,该数据帧具有以下功能:Pandas-Dataframe-Python中多观测特征到单观测特征的转换,python,pandas,Python,Pandas,我有一个数据框,其中包含列(预索引)的母亲ID和多个观察值,如下所示: 我想将多个观测特征(预糖尿病)转换为每个母亲ID具有单个观测的特征 为此,我将创建一个新的数据帧,该数据帧具有以下功能: 如果某个特定的MotherID的preDiabetes==“Yes”,则为newPreDiabetes指定一个值“Yes”,而不管剩余的观察结果如何 。否则,如果糖尿病前期!=“是”对于特定的MotherID,我将为newPreDiabetes指定一个值“否” 因此,我的新数据帧将对特征预糖尿病和唯一
- 如果某个特定的MotherID的preDiabetes==“Yes”,则为newPreDiabetes指定一个值“Yes”,而不管剩余的观察结果如何
- 。否则,如果糖尿病前期!=“是”对于特定的MotherID,我将为newPreDiabetes指定一个值“否”
ChildID MotherID preDiabetes
0 20 455 No
1 20 455 Not documented
2 13 102 NaN
3 13 102 Yes
4 702 946 No
5 82 571 No
6 82 571 Yes
7 82 571 Not documented
ChildID MotherID newPreDiabetes
0 20 455 No
1 13 102 Yes
2 702 946 No
3 82 571 Yes
我不熟悉Python和Pandas,因此我不确定实现这一点的最佳方法是什么,但这是我迄今为止尝试过的:
#获取所有唯一母亲ID的列表
uniqueMotherIds=pd.unique(df['MotherID']].values.ravel())
#创建新的数据帧,该数据帧将包含唯一的motherID和newPreDiabetes的单个观察值
newDf={'MotherID','newPreDiabetes'}
#遍历所有母亲ID的列表并查找预糖尿病==“是”
对于UniqueMotherID中的id:
filteredDf=df[df['MotherID']==id]。预糖尿病==“是”
结果=pd.concat([filteredDf,newDf])
代码还没有完成,我将感谢一些帮助,因为我不知道我是否在正确的轨道上
非常感谢:)
输出:
MotherID ChildID newPreDiabetes
0 102 13 Yes
1 455 20 No
2 571 82 Yes
3 946 702 No
行了,谢谢!我有另一个列(ChildID),我没有在上面的MWE中包含它,我如何将它作为输出的一部分包含在操作它中呢?
MotherID ChildID newPreDiabetes
0 102 13 Yes
1 455 20 No
2 571 82 Yes
3 946 702 No