将列中的某些行分组,然后在 pandas 中重复它们
Grouping certain rows in a column then repeat them in pandas
我希望多次重复从 11 到 17 的行,但我希望每个重复在列 'F' 中都有 +1,正如您在所需数据框中看到的那样。我想到了 Groupby() 但我不确定,我应该将哪个 cretria 传递给 groupby() 我想控制三列。
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OEE EG A 2 O
12 13 CAE EG A 2 C
13 14 HA1E EG A 2 H
14 15 HA2E EG A 2 H
15 16 CBE EG A 2 C
16 17 HB1E EG A 2 H
17 18 HB2E EG A 2 H
18 19 OE EGH A 3 O
19 20 CA EGH A 3 C
20 21 HA1 EGH A 3 H
21 22 HA2 EGH A 3 H
22 23 CB EGH A 3 C
23 24 HB1 EGH A 3 H
24 25 HB2 EGH A 3 H
不需要的数据框:
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OE EG A 2 O
12 13 CA EG A 2 C
13 14 HA1 EG A 2 H
14 15 HA2 EG A 2 H
15 16 CB EG A 2 C
16 17 HB1 EG A 2 H
17 18 HB2 EG A 2 H
18 19 OE EG A 3 O
19 20 CA EG A 3 C
20 21 HA1 EG A 3 H
21 22 HA2 EG A 3 H
22 23 CB EG A 3 C
23 24 HB1 EG A 3 H
24 25 HB2 EG A 3 H
25 26 OE EG A 4 O
26 27 CA EG A 4 C
27 28 HA1 EG A 4 H
28 29 HA2 EG A 4 H
29 30 CB EG A 4 C
30 31 HB1 EG A 4 H
31 32 HB2 EG A 4 H
32 33 OE EGH A 5 O
33 34 CA EGH A 5 C
34 35 HA1 EGH A 5 H
35 36 HA2 EGH A 5 H
36 37 CB EGH A 5 C
37 38 HB1 EGH A 5 H
38 39 HB2 EGH A 5 H
IIUC,你可以这样做:
start = 11
stop = 17
repeat = 3
d = df.iloc[start:stop+1]
pd.concat([df.iloc[:start]]+
[d.assign(F=d['F']+i) for i in range(repeat)]+
[df.iloc[stop:]], ignore_index=True
)
输出:
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OEE EG A 2 O
12 13 CAE EG A 2 C
13 14 HA1E EG A 2 H
14 15 HA2E EG A 2 H
15 16 CBE EG A 2 C
16 17 HB1E EG A 2 H
17 18 HB2E EG A 2 H
18 12 OEE EG A 3 O
19 13 CAE EG A 3 C
20 14 HA1E EG A 3 H
21 15 HA2E EG A 3 H
22 16 CBE EG A 3 C
23 17 HB1E EG A 3 H
24 18 HB2E EG A 3 H
25 12 OEE EG A 4 O
26 13 CAE EG A 4 C
27 14 HA1E EG A 4 H
28 15 HA2E EG A 4 H
29 16 CBE EG A 4 C
30 17 HB1E EG A 4 H
31 18 HB2E EG A 4 H
32 18 HB2E EG A 2 H
33 19 OE EGH A 3 O
34 20 CA EGH A 3 C
35 21 HA1 EGH A 3 H
36 22 HA2 EGH A 3 H
37 23 CB EGH A 3 C
38 24 HB1 EGH A 3 H
39 25 HB2 EGH A 3 H
我希望多次重复从 11 到 17 的行,但我希望每个重复在列 'F' 中都有 +1,正如您在所需数据框中看到的那样。我想到了 Groupby() 但我不确定,我应该将哪个 cretria 传递给 groupby() 我想控制三列。
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OEE EG A 2 O
12 13 CAE EG A 2 C
13 14 HA1E EG A 2 H
14 15 HA2E EG A 2 H
15 16 CBE EG A 2 C
16 17 HB1E EG A 2 H
17 18 HB2E EG A 2 H
18 19 OE EGH A 3 O
19 20 CA EGH A 3 C
20 21 HA1 EGH A 3 H
21 22 HA2 EGH A 3 H
22 23 CB EGH A 3 C
23 24 HB1 EGH A 3 H
24 25 HB2 EGH A 3 H
不需要的数据框:
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OE EG A 2 O
12 13 CA EG A 2 C
13 14 HA1 EG A 2 H
14 15 HA2 EG A 2 H
15 16 CB EG A 2 C
16 17 HB1 EG A 2 H
17 18 HB2 EG A 2 H
18 19 OE EG A 3 O
19 20 CA EG A 3 C
20 21 HA1 EG A 3 H
21 22 HA2 EG A 3 H
22 23 CB EG A 3 C
23 24 HB1 EG A 3 H
24 25 HB2 EG A 3 H
25 26 OE EG A 4 O
26 27 CA EG A 4 C
27 28 HA1 EG A 4 H
28 29 HA2 EG A 4 H
29 30 CB EG A 4 C
30 31 HB1 EG A 4 H
31 32 HB2 EG A 4 H
32 33 OE EGH A 5 O
33 34 CA EGH A 5 C
34 35 HA1 EGH A 5 H
35 36 HA2 EGH A 5 H
36 37 CB EGH A 5 C
37 38 HB1 EGH A 5 H
38 39 HB2 EGH A 5 H
IIUC,你可以这样做:
start = 11
stop = 17
repeat = 3
d = df.iloc[start:stop+1]
pd.concat([df.iloc[:start]]+
[d.assign(F=d['F']+i) for i in range(repeat)]+
[df.iloc[stop:]], ignore_index=True
)
输出:
B C D E F J
0 1 CM MEG A 1 C
1 2 HM1 MEG A 1 H
2 3 HM2 MEG A 1 H
3 4 HM3 MEG A 1 H
4 5 OM MEG A 1 O
5 6 CA MEG A 1 C
6 7 HA1 MEG A 1 H
7 8 HA2 MEG A 1 H
8 9 CB MEG A 1 C
9 10 HB1 MEG A 1 H
10 11 HB2 MEG A 1 H
11 12 OEE EG A 2 O
12 13 CAE EG A 2 C
13 14 HA1E EG A 2 H
14 15 HA2E EG A 2 H
15 16 CBE EG A 2 C
16 17 HB1E EG A 2 H
17 18 HB2E EG A 2 H
18 12 OEE EG A 3 O
19 13 CAE EG A 3 C
20 14 HA1E EG A 3 H
21 15 HA2E EG A 3 H
22 16 CBE EG A 3 C
23 17 HB1E EG A 3 H
24 18 HB2E EG A 3 H
25 12 OEE EG A 4 O
26 13 CAE EG A 4 C
27 14 HA1E EG A 4 H
28 15 HA2E EG A 4 H
29 16 CBE EG A 4 C
30 17 HB1E EG A 4 H
31 18 HB2E EG A 4 H
32 18 HB2E EG A 2 H
33 19 OE EGH A 3 O
34 20 CA EGH A 3 C
35 21 HA1 EGH A 3 H
36 22 HA2 EGH A 3 H
37 23 CB EGH A 3 C
38 24 HB1 EGH A 3 H
39 25 HB2 EGH A 3 H