将相邻行附加到选定行

2024-06-01 08:35:26 发布

您现在位置:Python中文网/ 问答频道 /正文

从每个唯一的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

Tags: iddataframedfdataratepduniquedf1
1条回答
网友
1楼 · 发布于 2024-06-01 08:35:26

使用^{}with ^{}by Serieswith ^{},替换缺少的值并按位使用原始掩码链OR|):

mask = df.ID.str.contains('A12')
df = df[mask.groupby(df['Rate']).shift(-1).fillna(False) | mask]
print (df)
     ID    A    B      Rate
1   A13  1.4  2.3  0.215333
2   A12  1.2  2.7  0.215333
3   A12  1.6  1.8  0.215333
6   A11  1.1  2.7  0.822504
7   A12  1.0  2.3  0.822504
9   A17  2.2  5.4  1.538575
10  A12  3.2  1.4  1.538575
11  A12  1.4  9.4  1.538575

相关问题 更多 >