【问题标题】:Using print and lambda function with groupby使用 groupby 的 print 和 lambda 函数
【发布时间】:2019-08-08 08:14:42
【问题描述】:

我正在使用一个简单的代码。我尝试按一列查看 groupby 的结果。但我的问题是其中一个结果是重复的。


#DataFrame
df = pd.DataFrame({'A': ['one', 'one', 'two', 'two', 'one'] ,
                   'B': ['Ar', 'Br', 'Cr', 'Ar','Ar'] ,
                   'C': ['12/15/2011', '11/11/2001', '08/30/2015', '07/3/1999','03/03/2000' ],
                      'D':[1,7,3,4,5]})


#Create a groupby and show the results

df.groupby['A'].apply(lambda x : print(x))

这会显示一个重复的结果。是什么原因?

【问题讨论】:

  • 你的预期输出是什么?
  • 很抱歉
  • 对不起,我预料到了,这显示了两个数据帧,一个数据帧用于 A 等于“一”值,一个数据帧用于 A 等于“二”值。尽管如此,这会返回三个数据帧,对于等于“一”的 A 数据帧是重复的
  • 抱歉正确的代码是:
  • df.groupby(A').apply(lambda x : print(x))

标签: lambda apply pandas-groupby


【解决方案1】:

据我所知,您似乎正在寻找以下任何一项:

df.groupby('A').apply(lambda x : x.sum())

df.groupby(A').apply(lambda x: "{%s}" % ', '.join(x))

我建议查看此答案以获取更多选项:https://stackoverflow.com/a/17841294/6908282

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 2014-04-07
    • 1970-01-01
    • 2021-03-18
    • 2018-06-19
    • 2020-11-12
    相关资源
    最近更新 更多