如何在Python3中迭代组(GroupBy)?

2024-09-27 23:26:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了一个源于以前Python版本的代码(至少我认为是这样),它似乎在Python3上不起作用。我怎样才能克服这个问题

以下是测试数据集:

import pandas as pd

ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
   'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'],
   'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2],
   'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017],
   'Points':[876,789,863,673,741,812,756,788,694,701,804,690]}
df = pd.DataFrame(ipl_data)

下面是有问题的代码:

grouped = df.groupby('Year')

for name,group in grouped:
   print name
   print group

我应该得到这个:

2014
   Points  Rank     Team   Year
0     876     1   Riders   2014
2     863     2   Devils   2014
4     741     3   Kings    2014
9     701     4   Royals   2014

2015
   Points  Rank     Team   Year
1     789     2   Riders   2015
3     673     3   Devils   2015
5     812     4    kings   2015
10    804     1   Royals   2015

2016
   Points  Rank     Team   Year
6     756     1    Kings   2016
8     694     2   Riders   2016

2017
   Points  Rank    Team   Year
7     788     1   Kings   2017
11    690     2  Riders   2017

但当我启动代码时,我收到了以下错误消息:

Missing parentheses in call to 'print'. Did you mean print(name)?

因此我将代码更改为:

for name,group in grouped:
   print(name)
   print(group)

我启动了代码,但收到了以下错误消息:

cannot unpack non-iterable int object

代码中有什么错误


Tags: 代码namein错误groupyearteampoints
1条回答
网友
1楼 · 发布于 2024-09-27 23:26:02

你的代码没有错,它给出了你想要的结果

您可能在Python控制台或Jupyter笔记本中以交互方式工作。您的错误消息

cannot unpack non-iterable int object

(与命令for name, group in grouped:相关)表明,在将Python 2print命令更改为Python 3print()函数和再次运行for循环之间,为grouped变量指定了一个整数值

相关问题 更多 >

    热门问题