如何将不同的列值分配给 Python 中的不同变量
How To Assign Different Column Values To Different Variables In Python
我正在尝试使用 Python 将 df
中 group
列中的所有三个唯一组分配给不同的变量(参见我的代码)。如何将其合并到 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")]
我正在尝试使用 Python 将 df
中 group
列中的所有三个唯一组分配给不同的变量(参见我的代码)。如何将其合并到 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")]