Python Pandas--通过选择较短的文本解决行合并冲突

Python Pandas--通过选择较短的文本解决行合并冲突,python,python-3.x,pandas,algorithm,pandas-groupby,Python,Python 3.x,Pandas,Algorithm,Pandas Groupby,我有一个包含两列的熊猫数据框架:字符串ID(非唯一)、字符串文本 我想构建一个包含两列的数据框架:stringid(unique)、stringtext。 要使我的ID唯一,我需要将所有行与匹配的ID合并。 但是,ID相同的行都有不同的文本内容。 合并时,我希望具有最短文本内容的行优先 如何做到这一点 提前非常感谢 您可以编写自己的聚合函数,请参阅更多- import pandas as pd df = pd.DataFrame({'id': [1, 2, 1, 2], 'text': ['ab

我有一个包含两列的熊猫数据框架:字符串ID(非唯一)、字符串文本

我想构建一个包含两列的数据框架:stringid(unique)、stringtext。 要使我的ID唯一,我需要将所有行与匹配的ID合并。 但是,ID相同的行都有不同的文本内容。 合并时,我希望具有最短文本内容的行优先

如何做到这一点


提前非常感谢

您可以编写自己的聚合函数,请参阅更多-

import pandas as pd
df = pd.DataFrame({'id': [1, 2, 1, 2], 'text': ['ab', 'a', 'b', 'aa']})

def shortest_agg(s):
    lst =  s.tolist()
    return sorted(lst, key = lambda x: len(x))[0]


df.groupby('id').agg(shortest_agg)

#result 
text
id
1     b
2     a