Python 如何在pandas框架下减少字符串最长的数据?
如何在pandas框架下减少字符串最长的数据? 我尝试了以下代码,但得到了Python 如何在pandas框架下减少字符串最长的数据?,python,pandas,Python,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
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"