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