微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在pandas框架下使用最长的字符串减少数据?

如何使用pandas框架下最长的字符串减少数据?
我尝试了以下代码,但得到了ValueError:无效的参数数量.

def f1(s):
    return max(s, key=len)

data.groupby('id').agg({'name':(lambda s: f1(s)) })

防爆.输入

id name
GB "United Kingdom"
GB England
US "United States"
US America

输出

id name
GB "United Kingdom"
US "United States"

解决方法:

代码应该工作.顺便说一句,你不需要将f1包装在另一个lambda中.只要通过f1. (它们具有完全相同的参数签名)

>>> import pandas as pd
>>>
>>> def f1(s):
...     return max(s, key=len)
...
>>> data = pd.DataFrame([
...     {'id': 'GB', 'name': '"United Kingdom"'},
...     {'id': 'GB', 'name': 'England'},
...     {'id': 'US', 'name': '"United States"'},
...     {'id': 'US', 'name': 'America'},
...
... ])
>>> data.groupby('id').agg({'name': f1})
                name
id
GB  "United Kingdom"
US   "United States"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐