python - 基于公共(public)键对 pandas 数据框进行分组

标签 python pandas

我有一个已解析为 pandas DataFrame 的文件,但希望按第 3 列和第 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:

-67     37
-72     37
-71     37
...     ...

DF2:

-68     38
-67     38
-70     38
...     ...

DF3:

-64     39
-63     39
-62     39
...     ...

我尝试过以下方法:

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

这与我想要的相差甚远,那么如何根据我的要求对这些数据进行分组呢?

最佳答案

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

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

关于python - 基于公共(public)键对 pandas 数据框进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50344335/

相关文章:

python - 如何使用 Python 的 zipfile 模块对 ZIP 文件中的文件设置权限(属性)?

python - 将零写入文件 block

python - Pandas if/then 聚合

python-3.x - Pandas - 将具有不同名称和列数的数据帧堆叠在一起

python - pandas.DataFrame.replace 更改列的 dtype

jinja2 中的 python 三元给出 TemplateSyntaxError : tag name expected

Python:将 Unicode 转换为 ASCII,对于 CSV 文件没有错误

python - 如何使用对齐的空格字符将 python pandas.DataFrame 写入文件?

python - tensorflow GPU安装问题

python - 根据条件在 Pandas 数据框中创建列