Python 将特定行插入数据帧中的其他组

Python 将特定行插入数据帧中的其他组,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个数据帧,在这个数据帧中,我想减去一个特定的行,然后添加到同一数据帧中的其他组中 假设我们有这样的数据 import pandas as pd raw_data = {'regiment': ['51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st'], 'trucks': ['MAZ-7310', 'MAZ-7310',

我有一个数据帧,在这个数据帧中,我想减去一个特定的行,然后添加到同一数据帧中的其他组中

假设我们有这样的数据

import pandas as pd    

raw_data = {'regiment': ['51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st', '51st'], 
            'trucks': ['MAZ-7310', 'MAZ-7310', 'MAZ-7310', 'MAZ-7310', 'Tatra 810', 'Tatra 810', 'Tatra 810', 'Tatra 810', 'ZIS-150', 'ZIS-150', 'ZIS-150', 'ZIS-150'],
            'drivers': ['MAZ', 'MAZ', 'IVE', 'IVE', 'MAN', 'MAN', 'MERC', 'TATA', 'TATA', 'MAN', 'REN', 'TATA'],


            'counts': [5,5,1,1,0,0,1,0, 1,2,3,4]}


df = pd.DataFrame(raw_data, columns = ['regiment', 'trucks','drivers','counts'])

 regiment     trucks drivers  counts
0      51st   MAZ-7310     MAZ       5
1      51st   MAZ-7310     MAZ       5
2      51st   MAZ-7310     IVE       1
3      51st   MAZ-7310     IVE       1
4      51st  Tatra 810     MAN       0
5      51st  Tatra 810     MAN       0
6      51st  Tatra 810    MERC       1
7      51st  Tatra 810    TATA       0
8      51st    ZIS-150    TATA       1
9      51st    ZIS-150     MAN       2
10     51st    ZIS-150     REN       3
11     51st    ZIS-150    TATA       4
我想减去含有
drivers==MAZ
的行,将它们添加到其他组中,并更改它们的
trucks
组,以便它们匹配它们进入的组

我需要的最终结果是这样的

regiment     trucks drivers  counts
0      51st   MAZ-7310     MAZ       5
1      51st   MAZ-7310     MAZ       5
2      51st   MAZ-7310     IVE       1
3      51st   MAZ-7310     IVE       1
4      51st  Tatra 810     MAZ       5
5      51st  Tatra 810     MAZ       5
6      51st  Tatra 810     MAN       0
7      51st  Tatra 810     MAN       0
8      51st  Tatra 810    MERC       1
9      51st  Tatra 810    TATA       0
10     51st    ZIS-150     MAZ       5
11     51st    ZIS-150     MAZ       5
12     51st    ZIS-150    TATA       1
13     51st    ZIS-150     MAN       2
14     51st    ZIS-150     REN       3
16     51st    ZIS-150    TATA       4
我是从这个开始的

df =  df[df['drivers'].str.contains('MAZ',case=True)]
    regiment    trucks drivers  counts
0     51st  MAZ-7310     MAZ       5
1     51st  MAZ-7310     MAZ       5
IIUC:

输出:

   regiment     trucks drivers  counts
0      51st   MAZ-7310     MAZ       5
1      51st   MAZ-7310     MAZ       5
2      51st   MAZ-7310     IVE       1
3      51st   MAZ-7310     IVE       1
4      51st  Tatra 810     MAZ       5
5      51st  Tatra 810     MAZ       5
6      51st  Tatra 810     MAN       0
7      51st  Tatra 810     MAN       0
8      51st  Tatra 810    MERC       1
9      51st  Tatra 810    TATA       0
10     51st    ZIS-150     MAZ       5
11     51st    ZIS-150     MAZ       5
12     51st    ZIS-150    TATA       1
13     51st    ZIS-150     MAN       2
14     51st    ZIS-150     REN       3
15     51st    ZIS-150    TATA       4

谢谢你的解决方案。请问你是如何解决这个问题的,有类似的帖子吗?我找不到的或者其他来源?
   regiment     trucks drivers  counts
0      51st   MAZ-7310     MAZ       5
1      51st   MAZ-7310     MAZ       5
2      51st   MAZ-7310     IVE       1
3      51st   MAZ-7310     IVE       1
4      51st  Tatra 810     MAZ       5
5      51st  Tatra 810     MAZ       5
6      51st  Tatra 810     MAN       0
7      51st  Tatra 810     MAN       0
8      51st  Tatra 810    MERC       1
9      51st  Tatra 810    TATA       0
10     51st    ZIS-150     MAZ       5
11     51st    ZIS-150     MAZ       5
12     51st    ZIS-150    TATA       1
13     51st    ZIS-150     MAN       2
14     51st    ZIS-150     REN       3
15     51st    ZIS-150    TATA       4