熊猫将相同的值合并在同一行中

有以下数据:


  board_href_deals       items  test1

0            test2  {'x': 'a'}  test1

1            test2  {'x': 'b'}  test2

分组“board_href_deals”后,我想以列表格式输出现有数据,如下所示:


 board_href_deals                     items     test1

0            test2  [{'x': 'a'}, {'x': 'b'}]    ['test1', 'test2']

谢谢你


米琪卡哇伊
浏览 115回答 2
2回答

蛊毒传说

另一种解决方案,尤其是在旧版本的 Pandas 上,是在序列上使用GroupBy+ apply,然后通过concat.在 Python 3.60 / Pandas 0.19.2 上进行基准测试。这个人为的例子有少量的组;如果效率是一个问题,您应该使用您的数据进行测试。import pandas as pddf = pd.DataFrame({'A': ['test2', 'test2', 'test4', 'test4'],                   'B': [{'x': 'a'}, {'x': 'b'}, {'y': 'a'}, {'y': 'b'}],                   'C': ['test1', 'test2', 'test3', 'test4']})df = pd.concat([df]*10000)def jpp(df):    g = df.groupby('A')    L = [g[col].apply(list) for col in ['B', 'C']]    return pd.concat(L, axis=1).reset_index()%timeit jpp(df)                                 # 11.3 ms per loop%timeit df.groupby('A').agg(lambda x: list(x))  # 20.5 ms per loop
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python