将相邻行附加到 Pandas 中的选定行

从每个独特的df.Rate.unique()我想选择df.ID=A12加上下面的行。


这是我的 df。


d = {'ID':['A13', 'A13', 'A12', 'A12','A14', 'A14','A11', 'A12', 'A16', 'A17', 'A12', 'A12'], 

         'A':[1.1,1.4,1.2, 1.6, 1.1, 1.8,1.1, 1.0, 1.9, 2.2, 3.2, 1.4],

         'B':[2.4,2.3,2.7, 1.8, 7.5, 3.5,2.7, 2.3, 2.5, 5.4, 1.4, 9.4],

         'Rate':[0.215333,0.215333,0.215333,0.215333,0.822504,0.822504,0.822504,0.822504,1.538575,1.538575,1.538575,1.538575]}

df = pd.DataFrame(data=d)



df1 = df[df.ID.str.contains('A12')==True] 

但我希望将前一个 ID 的最后一行包含在 df1 中。


期望输出


    A   B   ID

0   1.4 2.3 A13

1   1.2 2.7 A12

2   1.6 1.8 A12

3   1.1 2.7 A11

4   1.0 2.3 A12

5   2.2 5.4 A17

6   3.2 1.4 A12

7   1.4 9.4 A12


达令说
浏览 110回答 1
1回答

吃鸡游戏

使用boolean indexingwith groupbyby Serieswith shift,用按位OR( |)替换缺失值和原始掩码链:mask = df.ID.str.contains('A12')df = df[mask.groupby(df['Rate']).shift(-1).fillna(False) | mask]print (df)     ID    A    B      Rate1   A13  1.4  2.3  0.2153332   A12  1.2  2.7  0.2153333   A12  1.6  1.8  0.2153336   A11  1.1  2.7  0.8225047   A12  1.0  2.3  0.8225049   A17  2.2  5.4  1.53857510  A12  3.2  1.4  1.53857511  A12  1.4  9.4  1.538575
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python