我想在应用我的函数后创建一个带有标签column('off')的新数据框。

df_onoff = df_sample.groupby('id')['digits'].apply(lambda nums: "%d" % ', '.join(format(n%2**60,'060b') for n in nums).count('01'))


现在是输出:

id
4013    466
4014    592
4015    566
4016    466


我希望输出为:

id      off
4013    466
4014    592
4015    566
4016    466


任何想法?谢谢!

最佳答案

只需添加reset_index即可,因为输出为Series

df_onoff = df_sample.groupby('id')['digits']
                    .apply(lambda nums: "%d" % ', '.join(format(n%2**60,'060b') for n in nums).count('01'))
                    .reset_index()


如果可能,添加参数名称:

.reset_index(name='off')


或重命名列:

.reset_index().rename(columns={'digits':'off'})

关于python - pandas groupby通过apply操作创建一个带有标签的新数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45641758/

10-12 23:18