如何使用pandas框架下最长的字符串减少数据?我尝试了以下代码,但得到了ValueError: invalid number of arguments.
def f1(s):
return max(s, key=len)
data.groupby('id').agg({'name':(lambda s: f1(s)) })
Run Code Online (Sandbox Code Playgroud)
防爆.输入
id name
GB "United Kingdom"
GB England
US "United States"
US America
Run Code Online (Sandbox Code Playgroud)
输出:
id name
GB "United Kingdom"
US "United States"
Run Code Online (Sandbox Code Playgroud)
代码应该工作.顺便说一句,你不需要换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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |