Bri*_*ien 8 python dataframe pandas
在pandas数据帧中,可以使用函数对其索引进行分组.我正在寻找一个代替应用于列的函数.
我想要分两列,除了我需要第二列按任意函数分组,foo:
group_sum = df.groupby(['name', foo])['tickets'].sum()
Run Code Online (Sandbox Code Playgroud)
如何foo定义如何将第二列分为两组,> 0例如,是否按值划分?或者,使用完全不同的方法或语法?
Groupby可以接受标签和系列/数组的任意组合(只要数组与数据帧的长度相同),因此您可以将函数映射到列并将其传递给groupby,如
df.groupby(['name', df[1].map(foo)])
Run Code Online (Sandbox Code Playgroud)
或者,您可能希望在执行groupby之前将条件作为新列添加到数据框中,这样做的好处是可以在索引中为其指定名称:
df['>0'] = df[1] > 0
group_sum = df.groupby(['name', '>0'])['tickets'].sum()
Run Code Online (Sandbox Code Playgroud)