Pandas 当每个组中的所有行都相同时,为分组数据帧中的每个条目生成行号
我有一个数据框:Pandas 当每个组中的所有行都相同时,为分组数据帧中的每个条目生成行号,pandas,numpy,Pandas,Numpy,我有一个数据框: Test = pd.DataFrame([['US','CA', 'Los Angles', 10], ['US','IL', 'Springfield', 20]], columns = ['country', 'state', 'city', 'counter']) 我想重复计数器中每行的次数,因此我使用numpy pet = pd.DataFrame(np.repeat(Test.values, Test['counter'].values, axi
Test = pd.DataFrame([['US','CA', 'Los Angles', 10], ['US','IL', 'Springfield', 20]],
columns = ['country', 'state', 'city', 'counter'])
我想重复计数器中每行的次数,因此我使用numpy
pet = pd.DataFrame(np.repeat(Test.values, Test['counter'].values, axis = 0), columns = Test.columns)
现在如何向每个组添加行号?
因此,它应该在洛杉矶运行0到9
,在斯普林菲尔德运行0到19
Result = pet.groupby(['country', 'state', 'city'])
Result['row_number'] = ??
我尝试了分组方式,并看到了使用rank的示例,但鉴于我的所有行都相同,我认为这不起作用?您需要:
你需要:
pet['row_number'] = pet.groupby(['country', 'state', 'city']).cumcount()
print (pet)
country state city counter row_number
0 US CA Los Angles 10 0
1 US CA Los Angles 10 1
2 US CA Los Angles 10 2
3 US CA Los Angles 10 3
4 US CA Los Angles 10 4
5 US CA Los Angles 10 5
6 US CA Los Angles 10 6
7 US CA Los Angles 10 7
8 US CA Los Angles 10 8
9 US CA Los Angles 10 9
10 US IL Springfield 20 0
11 US IL Springfield 20 1
12 US IL Springfield 20 2
13 US IL Springfield 20 3
14 US IL Springfield 20 4
15 US IL Springfield 20 5
16 US IL Springfield 20 6
17 US IL Springfield 20 7
18 US IL Springfield 20 8
19 US IL Springfield 20 9
20 US IL Springfield 20 10
21 US IL Springfield 20 11
22 US IL Springfield 20 12
23 US IL Springfield 20 13
24 US IL Springfield 20 14
25 US IL Springfield 20 15
26 US IL Springfield 20 16
27 US IL Springfield 20 17
28 US IL Springfield 20 18
29 US IL Springfield 20 19