如何将不同的列值分配给 Python 中的不同变量

How To Assign Different Column Values To Different Variables In Python

我正在尝试使用 Python 将 dfgroup 列中的所有三个唯一组分配给不同的变量(参见我的代码)。如何将其合并到 for 循环中?显然var + i不行。

import pandas as pd

data = {
    'group': ['a', 'a', 'a', 'b', 'b', 'c', 'c'], 
    'num': list(range(7))
    }  
df = pd.DataFrame(data)  

unique_groups = df['group'].unique()

# How do I incorporate this logic inside a for loop??
var1 = df[df['group'] == unique_groups[0]]
var2 = df[df['group'] == unique_groups[1]]
var3 = df[df['group'] == unique_groups[2]]

# My approach:
for i in range(len(unique_groups)):
    var + i = df[df['group'] == unique_groups[i]] # obviously "var + i" does not work

你可以使用字典来做到这一点,基本上:

all_vars ={}
for i in range(len(unique_groups)):

    all_vars[f"var{i}"] = df[df['group'] == unique_groups[i]]

从您的评论来看,all_vars 似乎可以作为一个列表,因此 all_vars[0] 是第一组,all_vars[1] 第二组,依此类推。在这种情况下,请考虑使用 groupby 代替:

all_vars = [group for name, group in df.groupby("group")]