pandas根據A字段分組取B字段最長的那一行

 

def test_for_longer():
    data = [{'foo': 'GD-20190101-010101', 'son': 'GD-123'},
            {'foo': 'GD-20190101-010101', 'son': 'GD-12345'},
            {'foo': 'GD-20190101-010102', 'son': 'GD-123'},
            {'foo': 'GD-20190101-010102', 'son': 'GD-123456'}]
    df = pd.DataFrame(data)
    df['size'] = df['son'].str.len()
    # df['size'] = df.apply(lambda x: len(x['son']), axis=1)
    idx = df.groupby('foo')['size'].idxmax()
    return df.loc[idx, ['foo', 'son']]


if __name__ == '__main__':
    val = test_for_longer()
    print(val)

 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章