moj*_*_28 3 python dataframe pandas
我正在尝试匹配行并将它们聚合在一行中。
例如对于下表,我想聚合前三行,因为它们是相似的。第四个不一样。在我的检查中,对于 col 1 为 B 的任何行,我什么都不做。然后再次聚合最后两行:
|---------------------|------------------|------------------|
| Col 1 | Col 2 | Col 3 |
|---------------------|------------------|------------------|
| A | 12st | 13 |
|---------------------|------------------|------------------|
| A | 12st | 13 |
|---------------------|------------------|------------------|
| A | 12st | 13 |
|---------------------|------------------|------------------|
| A | 12st | 17 |
|---------------------|------------------|------------------|
| B | 11aa | 10 |
|---------------------|------------------|------------------|
| C | 10ee | 10 |
|---------------------|------------------|------------------|
| C | 10ee | 10 |
|---------------------|------------------|------------------|
Run Code Online (Sandbox Code Playgroud)
df = pd.DataFrame({'Col 1': ['A', 'A', 'A','A', 'B', 'C', 'C'],'Col 2': ['12st', '12st', '12st', '12st', '11aa' ,'10ee','10ee'],'Col 3': [13, 13, 13, 17, 10, 10, 10 ]})
Run Code Online (Sandbox Code Playgroud)
我想获得以下输出:
|---------------------|------------------|------------------|---------------|
| Col 1 | Col 2 | Col 3 | Col 4 |
|---------------------|------------------|------------------|---------------|
| A | 12st | 13 | 3 |
|---------------------|------------------|------------------|---------------|
| A | 12st | 17 | 1 |
|---------------------|------------------|------------------|---------------|
| B | 11a | 10 | 1 |
|---------------------|------------------|------------------|---------------|
| C | 10ee | 10 | 2 |
|---------------------|------------------|------------------|---------------|
Run Code Online (Sandbox Code Playgroud)
我尝试过更简单的东西,比如 df.shift() 但这似乎只适用于特定的列而不是行。另外,我想对不断匹配的行 (i) 迭代执行此操作 (i==i+1==i+2)。
谢谢
我认为groupby.size可以这样做:
print (df.groupby(['Col 1','Col 2', 'Col 3']).size().reset_index(name='Col 4'))
Col 1 Col 2 Col 3 Col 4
0 A 12st 13 3
1 A 12st 17 1
2 B 11aa 10 1
3 C 10ee 10 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |