gpt4 book ai didi

python-3.x - 如何修复迭代 pandas 分组 df 时的 ValueError?

转载 作者:行者123 更新时间:2023-12-02 00:54:27 24 4
gpt4 key购买 nike

由于值错误,无法迭代 pandas 数据框的分组值。

我考虑的 df 是,

df:
class section sub marks school city
0 I A Eng 80 jghss salem
1 I A Mat 90 jghss salem
2 I A Eng 50 jghss salem
3 III A Eng 80 gphss salem
4 III A Mat 45 gphss salem
5 III A Eng 40 gphss salem
6 III A Eng 20 gphss salem
7 III A Mat 55 gphss salem

为了将列的值(即“子”和“标记”)分组为列表,我使用了

df_grp = df.groupby(['class','section','school','city']).agg(lambda x: list(x))

df_grp 是,

class section school city    sub                       marks                                                
I A jghss salem [Eng, Mat, Eng] [80, 90, 50]
III A gphss salem [Eng, Mat, Eng, Eng, Mat] [80, 45, 40, 20, 55]

现在我需要迭代 df_grp,以便像这样提取所有列的值

Row 1:-
class = I
section = A
school = jghss
city = salem
sub = [Eng, Mat, Eng]
marks = [80, 90, 50]

Row 2:-
class = III
section = A
school = gphss
city = salem
sub = [Eng, Mat, Eng, Eng, Mat]
marks = [80, 45, 40, 20, 55]

现在迭代 df_grp 以提取列值,我已经使用

for index,group in df_grp:
for subIndex, row in group.iterrows():
sub = row['sub']
marks = row['marks']

当我使用它时它返回

ValueError: too many values to unpack (expected 2)

最佳答案

import pandas as pd

df1 = pd.DataFrame({
'atable': ['Users', 'Users', 'Domains', 'Domains', 'Locks'],
'column': ['col_1', 'col_2', 'col_a', 'col_b', 'col'],
'column_type':['varchar', 'varchar', 'int', 'varchar', 'varchar'],
'is_null': ['No', 'No', 'Yes', 'No', 'Yes'],
})

df1_grouped = df1.groupby('atable').agg(lambda x: list(x))
for row in df1_grouped.iterrows():
print(row[1].column)

这里是一个例子,它会返回第一列的数据

groupby 方法已经返回一个数据帧,你不能再循环它。

关于python-3.x - 如何修复迭代 pandas 分组 df 时的 ValueError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55508914/

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