Python 使用多个列值创建多个数据帧并相应地命名
我想基于2列创建多个数据帧,即: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
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]