我是 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()
获取可迭代的键。
关于python - 使用 Pandas 中列的唯一值创建一个 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878942/