Python 基于公共密钥的数据帧分组

Python 基于公共密钥的数据帧分组,python,pandas,Python,Pandas,我有一个文件,我已将其解析为pandas DataFrame,但希望在第3列w.r.t第2列按其单独的元素进行集体分组 0 1 2 3 4 0 00B2 0 -67 39 1.13 1 00B2 85 -72 39 1.13 2 00B2 1 -67 86 1.13 3 00B2 2 -67 87 1.13 4 00B2 3 -67 88 1.13 5 00B2

我有一个文件,我已将其解析为pandas DataFrame,但希望在第3列w.r.t第2列按其单独的元素进行集体分组

        0   1    2    3     4
0    00B2   0  -67   39  1.13
1    00B2  85  -72   39  1.13
2    00B2   1  -67   86  1.13
3    00B2   2  -67   87  1.13
4    00B2   3  -67   88  1.13
5    00B2  91  -67   39  1.13
6    00B2   4  -67  246  1.13
7    00B2   5  -67   78  1.13
8    00B2   6  -67   10  1.13
9    00B2   7  -67  153  1.13
10   00B2   1  -67   38  1.13
11   00B2   8  -67  225  1.13
12   00B2   9  -67  135  1.13
13   00B2  10  -67   23  1.13
14   00B2   4  -67   38  1.13
15   00B2  11  -67  132  1.13
16   00B2  12  -71  214  1.13
17   00B2  13  -71   71  1.13
18   00B2  14  -71  215  1.13
19   00B2   8  -71   38  1.13
20   00B2  15  -71  249  1.13
21   00B2  16  -71  174  1.13
22   00B2  17  -71  196  1.13
23   00B2  18  -71   38  1.13
24   00B2  19  -71  252  1.13
25   00B2  20  -71  196  1.13
26   00B2  21  -71   39  1.13
27   00B2  22  -71   39  1.13
28   00B2  23  -71  252  1.13
29   00B2  24  -71   39  1.13
..    ...  ..  ...  ...   ...
我想要看起来像这样的数据

DF1:

DF2:

DF3:

我尝试了以下方法:

e1 = pd.DataFrame(e1)
print (e1)
group = e1[3][2] == "group"
print (e1[group])

这导致了与我想要的非常接近的结果,因此如何根据我的要求对这些数据进行分组?

我认为需要通过将
groupby
对象转换为元组和dict来创建
系列的字典:

d = dict(tuple(df.groupby(3)[2]))

print (d[39])
0    -67
1    -72
5    -67
26   -71
27   -71
29   -71
Name: 2, dtype: int64
对于数据帧

d1 = dict(tuple(df.groupby(3)))

print (d1[39])
       0   1   2   3     4
0   00B2   0 -67  39  1.13
1   00B2  85 -72  39  1.13
5   00B2  91 -67  39  1.13
26  00B2  21 -71  39  1.13
27  00B2  22 -71  39  1.13
29  00B2  24 -71  39  1.13

好的,但是在我创建了这个字典之后,如何收集所需的数据呢?然后使用
d[39]
@ShubhamKuse-Glad可以帮助我!
e1 = pd.DataFrame(e1)
print (e1)
group = e1[3][2] == "group"
print (e1[group])
d = dict(tuple(df.groupby(3)[2]))

print (d[39])
0    -67
1    -72
5    -67
26   -71
27   -71
29   -71
Name: 2, dtype: int64
d1 = dict(tuple(df.groupby(3)))

print (d1[39])
       0   1   2   3     4
0   00B2   0 -67  39  1.13
1   00B2  85 -72  39  1.13
5   00B2  91 -67  39  1.13
26  00B2  21 -71  39  1.13
27  00B2  22 -71  39  1.13
29  00B2  24 -71  39  1.13