8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Pandas,未来警告:使用多个键进行索引

blhsing 2月前

61 0

当我将函数应用于 groupby 对象的多个列时,Pandas 会抛出 Future 警告。它建议使用列表作为索引而不是元组。该怎么做?>>> df =...

当我将函数应用于 groupby 对象的多个列时,Pandas 会抛出 Future 警告。它建议使用列表而不是元组作为索引。该怎么做?

>>> df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])
>>> df.groupby([0,1])[1,2].apply(sum)
<stdin>:1: FutureWarning: Indexing with multiple keys (implicitly converted to a tuple of keys) will be deprecated, use a list instead.
     1  2
0 1      
1 2  2  3
4 5  5  6
7 8  8  9
帖子版权声明 1、本帖标题:Pandas,未来警告:使用多个键进行索引
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由blhsing在本站《pandas》版块原创发布, 转载请注明出处!
最新回复 (0)
  • groupby 方法后使用双括号。单括号用于输出 Pandas Series,双括号用于输出 Pandas DataFrame。

    df.groupby([0,1])[[1,2]].apply(sum)
    
  • 您应该将@ALollz 的评论整合到您的答案中,而不仅仅是引用它。这就是为什么另一个答案得到赞成的原因,即使您早就有了答案。您只需要解释为什么需要双括号 - 并且评论不属于答案。

  • 此警告是在 GitHub 上的讨论 。因此最好使用那里建议的内容:

    df.groupby([0, 1])[[1, 2]].apply(sum)
    

    也可以将切片操作移到最后,但效率不高:

    df.groupby([0, 1]).apply(sum).loc[:, 1:]
    

    感谢@ALollz 和@cmosig 的有益评论。

  • 。2 括号是进行 DataFrame 选择的方式(即使用列表进行选择)。我很惊讶 [1,2] 一直有效。

返回
作者最近主题: