gpt4 book ai didi

python - 访问 pandas 中分组列表中的列

转载 作者:行者123 更新时间:2023-12-01 09:30:52 24 4
gpt4 key购买 nike

我在数据框中进行了 groupby 操作,以按特定列的分类值进行分组。像这样的东西:

grouped = df.groupby(df["categories"])

如果我执行list(grouped),我得到的是一个数据帧列表,每个类别一个。到目前为止,一切顺利。

但我想在列表中的每个数据框中选择特定列。想象一下我想要访问的列名为 vals。我想要这样的东西:

my_array = [grouped[i]["vals"] for i in grouped]

但是前面的命令不起作用,我也没有尝试过其他组合。你有什么建议吗?谢谢。

最佳答案

grouped 返回tuples - 组名称和DataFrame,因此可能的解决方案是:

#unpack tuples to i, df
my_array = [df['vals'] for i, df in grouped]

或者:

#select second value of tuple - df
my_array = [i[1]['vals'] for i in grouped]

示例:

df = pd.DataFrame({'D':[1,3,5,7],
'vals':[5,3,6,9],
'categories':list('aabb')})

print (df)
D categories vals
0 1 a 5
1 3 a 3
2 5 b 6
3 7 b 9

grouped = df.groupby(df["categories"])

print (list(grouped))
[('a', D categories vals
0 1 a 5
1 3 a 3), ('b', D categories vals
2 5 b 6
3 7 b 9)]

my_array = [df['vals'] for i in grouped]
print (my_array)
[0 5
1 3
2 6
3 9
Name: vals, dtype: int64, 0 5
1 3
2 6
3 9
Name: vals, dtype: int64]

关于python - 访问 pandas 中分组列表中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49981190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com