Python 使用多个列值创建多个数据帧并相应地命名

Python 使用多个列值创建多个数据帧并相应地命名,python,Python,我想基于2列创建多个数据帧,即: Col1 Col2 Fr DK Fr IE Fr IE Fr SE Fr SE Fr SE Po DK Po IE Po IE Po SE Po SE Po SE Hk DK Hk IE Hk IE Hk SE Hk SE Hk SE Hk DK Hk

我想基于2列创建多个数据帧,即:

Col1    Col2
  Fr         DK
 Fr      IE
  Fr    IE
  Fr    SE
  Fr    SE
  Fr    SE
  Po    DK
  Po    IE
  Po    IE
  Po    SE
  Po    SE
  Po    SE
  Hk    DK
  Hk    IE
  Hk    IE
  Hk    SE
  Hk    SE
  Hk    SE
  Hk    DK
  Hk    IE
我需要基于col1和col2组合的数据帧

df_1

Col1    Col2
  Fr         DK

df_2

Col1    Col2
  Fr         IE
  Fr         IE
&以此类推

怎样才能做到呢

我使用的是:

#create unique list of names
 UniqueNames = ["Fr","Po"]

#create a data frame dictionary to store your data frames
DataFrameDict = {elem : pd.DataFrame for elem in UniqueNames}

for key in DataFrameDict.keys():
    DataFrameDict[key] = df[:][df.col2 == key]
但这只允许我基于1列进行操作。我如何使用多个列来完成它&我如何引用它们

我得到一个数据帧 DataFrameDict[Fr]

然而,我希望基于col1和col2创建单独的数据帧。有没有一种方法可以通过设置字典来通过循环,如下所示:

UniqueNames = {col1:["Fr","Po"],
               col2:["IE","SE"]}

您的问题并没有明确说明,所以我不确定您分割数据帧的标准是什么。如果您只想让每一行都成为一个单独的数据帧,那么就这样做吧

all_dfs = []
for idx, row in df.iterrows():
    curr_df = pd.DataFrame(row)
    all_dfs += [curr_df]