Python 如何通过两列的唯一组合对数据帧进行分组?
我有一个熊猫数据框,如下所示:Python 如何通过两列的唯一组合对数据帧进行分组?,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据框,如下所示: To From Price NY CA 2000 NY MI 4000 CA NY 3000 NY CA 3000 如何有效地获取(和存储)不同的数据帧,用于每个唯一的“到”和“从”组合?最终目标是使用这样形成的数据帧生成图形。任何其他(更有效)的方法都是受欢迎的 例如: DF 1: DF 2: DF 3: 您只需对和应用df.groupby操作,然后迭代每个组 In [749]: df
To From Price
NY CA 2000
NY MI 4000
CA NY 3000
NY CA 3000
如何有效地获取(和存储)不同的数据帧,用于每个唯一的“到”和“从”组合?最终目标是使用这样形成的数据帧生成图形。任何其他(更有效)的方法都是受欢迎的
例如:
DF 1:
DF 2:
DF 3:
您只需对
和应用df.groupby
操作,然后迭代每个组
In [749]: df_list = [g for _, g in df.groupby(['To', 'From'])]
In [750]: for d in df_list:
...: print(d)
...: print('-' * 20)
...:
To From Price
2 CA NY 3000
--------------------
To From Price
0 NY CA 2000
3 NY CA 3000
--------------------
To From Price
1 NY MI 4000
--------------------
df_列表中的每个元素都是一个数据帧
除非您真的需要,否则不要拆分这些组。data.groupby(['to','From'])
?pandas支持许多绘图的groupby操作。也许您不需要三个单独的数据帧,只需要一个groupby().plot()
调用?
To From Price
NY MI 4000
To From Price
CA NY 3000
In [749]: df_list = [g for _, g in df.groupby(['To', 'From'])]
In [750]: for d in df_list:
...: print(d)
...: print('-' * 20)
...:
To From Price
2 CA NY 3000
--------------------
To From Price
0 NY CA 2000
3 NY CA 3000
--------------------
To From Price
1 NY MI 4000
--------------------