为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫组。应用方法复制第一组

熊猫组。应用方法复制第一组

C++
哈士奇WWW 2019-11-05 12:04:06
熊猫组。应用方法复制第一组我的第一个问题是:我对熊猫群体应用方法的这种行为感到困惑(0.12.0-4),它似乎两次将这个函数应用到数据框架的第一行。例如:>>> from pandas import Series, DataFrame>>> import pandas as pd>>> df = pd.DataFrame({'class': ['A', 'B', 'C'], 'count':[1,0,2]})>>> print(df)   class  count  0     A      1  1     B      0    2     C      2我首先检查groupby函数是否正常工作,它似乎很好:>>> for group in df.groupby('class', group_keys = True):>>>     print(group)('A',   class  count0     A      1)('B',   class  count1     B      0)('C',   class  count2     C      2)然后,我尝试使用groupby对象执行类似的操作,并获得第一行输出两次:>>> def checkit(group):>>>     print(group)>>> df.groupby('class', group_keys = True).apply(checkit)  class  count0     A      1  class  count0     A      1  class  count1     B      0  class  count2     C      2任何帮助都将不胜感激!谢谢。编辑:@Jeff提供了下面的答案。我很密集,没有立即理解它,所以这里有一个简单的例子来说明,尽管上面示例中的第一个组有双打印输出,但Apply方法在第一个组上只运行了一次,并且不改变原始数据框架:>>> def addone(group):>>>     group['count'] += 1>>>     return group>>> df.groupby('class', group_keys = True).apply(addone)>>> print(df)      class  count0     A      11     B      02     C      2但是,通过将方法的返回分配给一个新对象,我们可以看到它按预期工作:df 2=df.groupby(‘class’,group_key=True).application(Addone)print(Df 2)      class  count0     A      21     B      12     C      3
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 427 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信