Skip to main content
 首页 » 编程设计

python之使用 Pandas 中列的唯一值创建一个 DataFrame

2025年05月04日9pengyingh

我是 Python 和 Pandas 的新手,我在解决问题时遇到了麻烦,我有一个包含多个变量的 DF,如下例所示:

SRC Data1 Data2 
AAA  180   122 
BBB  168   121 
CCC  165   147 
DDD  140   156 
EEE  152   103 
AAA  170   100 
CCC  166   112 
DDD  116   155 
EEE  179   119

我期待这样的事情:

DF_A

SRC    Data1   Data2 
AAA    180     122 
AAA    170     100

DF_B

SRC    Data1   Data2 
BBB     168     121

我需要为 SRC 中的每个值创建一个 DF,并在 Data1 和 Data2 中携带它们各自的数据

我已经使用 pd.DataFrame(Example.SRC.unique()) 并在 SRC 中获取每个唯一值,但我不知道这是否对我有帮助。

谢谢大家!

请您参考如下方法:

执行此操作的巧妙方法是 dict(iter(g)):

In [11]: g = df.groupby("SRC", as_index=False) 
 
In [12]: d = dict(iter(g)) 
 
In [13]: d 
Out[13]: 
{'AAA':    SRC  Data1  Data2 
 0  AAA    180    122 
 5  AAA    170    100, 'BBB':    SRC  Data1  Data2 
 1  BBB    168    121, 'CCC':    SRC  Data1  Data2 
 2  CCC    165    147 
 6  CCC    166    112, 'DDD':    SRC  Data1  Data2 
 3  DDD    140    156 
 7  DDD    116    155, 'EEE':    SRC  Data1  Data2 
 4  EEE    152    103 
 8  EEE    179    119} 
 
In [14]: d["AAA"] 
Out[14]: 
   SRC  Data1  Data2 
0  AAA    180    122 
5  AAA    170    100 

你可以在不复制的情况下拉出子组:

In [21]: g.get_group("AAA") 
Out[21]: 
   SRC  Data1  Data2 
0  AAA    180    122 
5  AAA    170    100 

注意:您可以使用 g.groups.keys() 获取可迭代的键。