如何通过两列的独特组合对pandas数据帧进行分组?

时间:2017-08-21 08:01:30

标签: python pandas dataframe

我有一个像下面这样的pandas数据框:

To    From    Price
NY    CA      2000
NY    MI      4000
CA    NY      3000
NY    CA      3000

如何为To和From的每个独特组合有效地获取(和存储)单独的数据帧?最终目标是使用由此形成的数据帧来制作图形。任何替代(也更有效)的方法也是受欢迎的。

示例:

DF 1:

To    From    Price
NY    CA      2000
NY    CA      3000

DF 2:

To    From    Price
NY    MI      4000

DF 3:

To    From    Price
CA    NY      3000

1 个答案:

答案 0 :(得分:2)

您只需在df.groupbyTo上应用From操作,然后对每个组进行迭代。

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_list中的每个元素都是一个数据框。

除非您确实需要,否则word of advice不会拆分这些群组。