我正在清理和重新构建数据框架。你知道吗
我有以下数据帧:
data= pd.DataFrame()
data['ID'] = [1,1,1,1,1,2,2,2,2,2]
data ['EventSecond'] = [1.5,2,2.5,3,3.8,4,4.8,6,7,8,]
data ['P1'] = ['A','B','C','D','E','F','A','D','E','G']
data ['Code'] = [12,13,16,9,9,0,4,13,14,16]
data ['status'] =['Pass','Pass','Pass','Pass','Pass','Pass','shot','shot','Pass','Pass']
data ['Accuracy']= ['Accurate','Accurate','Accurate','Accurate','Accurate','Not Accurate','Accurate','Accurate','Accurate','Not Accurate']
在这个数据帧中,我有ID,Eventsecond等。 我要做的是创建一个新列P2,其中包含列P1的下一行的元素,如果列accurity的元素是Accurate。有一点是,如果下面的ID列是不同的,我不会从下面的行中获取元素并将其留空 如果精度不准确,我将此行留空。你知道吗
问题补充
我只取status列的值为Pass的行。你知道吗
预期结果如下:
有人能提出建议吗? 谢谢你
泽普。你知道吗
IIUC,你需要
groupby
和transform
:或仅使用过滤器:
如果您选择的是空白,请使用:
因此,首先我将用P1中的
shift
创建P2,然后用您的条件创建一个mask
,用loc
空白来更改P2中的值,例如:编辑:你甚至可以像这样使用
numpy.where
相关问题 更多 >
编程相关推荐