首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有条件的熊猫群

有条件的熊猫群
EN

Stack Overflow用户
提问于 2021-04-23 04:46:22
回答 1查看 50关注 0票数 2

我有数据

代码语言:javascript
复制
id           type             ip
1            mcma             123
1            mcms             124
1            mcda             125
1            mcds             126
2            cic              127
2            cmc              128

我想用id按功能分组使用熊猫数据,并应用类型列表,ip是mcma的ip如果id有mcma类型,其他是'-‘。

代码语言:javascript
复制
id           child                                                      ip
1            [{type: mcma, ip:123}, ..., {type:mcds, ip:126}]           123
2            [{type:cic, ip:127}, {type:cmc, ip:128}]                   -                       

目前,我只是得到id和类型正确,我不知道如何获得ip列。当前代码:

代码语言:javascript
复制
df = (df.groupby(["id"], as_index=True).apply(lambda x: x[["type", "ip"]].to_dict('record')).reset_index().rename(columns={0: 'child'}))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-23 04:49:33

如果ipSeries.where中的NaN不匹配,则替换list,然后聚合listip的第一个值。

代码语言:javascript
复制
df = (df.assign(ip = df['ip'].where(df['type'].eq('mcma')),
                type = df[['type','ip']].apply(lambda x: dict(x), axis=1))
        .groupby('id')
        .agg(child=('type',list), ip=('ip','first'))
        .reset_index())

df['ip'] = df['ip'].fillna('-')
print (df)
   id                                              child     ip
0   1  [{'type': 'mcma', 'ip': 123}, {'type': 'mcms',...    123
1   2  [{'type': 'cic', 'ip': 127}, {'type': 'cmc', '...      -
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67224139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档