groupby和filter熊猫

df:


    make    country other_columns   sale

honda   tokyo   data    1

honda   hirosima    data    0

toyota  tokyo   data    1

toyota  hirosima    data    0

suzuki  tokyo   data    0

suzuki  hirosima    data    0

ferrari tokyo   data    1

ferrari hirosima    data    0

nissan  tokyo   data    1

nissan  hirosima    data    0

条件:保持具有1,0的货币对


期望的输出


make    country other_columns   sale

honda   tokyo   data    1

honda   hirosima    data    0

toyota  tokyo   data    1

toyota  hirosima    data    0

ferrari tokyo   data    1

ferrari hirosima    data    0

nissan  tokyo   data    1

nissan  hirosima    data    0

我尝试了什么(这显然不起作用)


outdf = df.groupby('sale').filter(lambda x: x > 0)

我应该将两个列都分组吗(“ sale”和“ make”)?


慕哥9229398
浏览 170回答 2
2回答

慕无忌1623718

这是使用groupby+的解决方案set。这应该是可扩展的,不需要订购:s = df.groupby('make')['sale'].apply(set)res = df[df['make'].map(s) >= {0, 1}]print(res)      make   country other_columns  sale0    honda     tokyo          data     11    honda  hirosima          data     02   toyota     tokyo          data     13   toyota  hirosima          data     06  ferrari     tokyo          data     17  ferrari  hirosima          data     08   nissan     tokyo          data     19   nissan  hirosima          data     0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python