Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python3中迭代组(GroupBy)?_Python_Pandas - Fatal编程技术网

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

如何在Python3中迭代组(GroupBy)?,python,pandas,Python,Pandas,我得到了一个源于以前Python版本的代码(至少我认为是这样),它似乎在Python3上不起作用。我怎样才能克服这个问题 以下是测试数据集: import pandas as pd ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2,

我得到了一个源于以前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)
我应该得到这个:

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)
但当我启动代码时,我收到了以下错误消息:

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)
因此我将代码更改为:

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)
我启动了代码,但收到了以下错误消息:

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)
无法解压缩不可编辑的int对象


代码中有什么错误?

您的代码没有错误,它准确地给出了您需要的结果

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

无法解压缩不可编辑的int对象


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

运行
grouped=df.groupby('Year'))
在更新之前再次执行