亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

熊貓將相同的值合并在同一行中

熊貓將相同的值合并在同一行中

米琪卡哇伊 2021-06-03 13:06:30
有以下數據:  board_href_deals       items  test10            test2  {'x': 'a'}  test11            test2  {'x': 'b'}  test2分組“board_href_deals”后,我想以列表格式輸出現有數據,如下所示: board_href_deals                     items     test10            test2  [{'x': 'a'}, {'x': 'b'}]    ['test1', 'test2']謝謝你
查看完整描述

2 回答

?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

另一種解決方案,尤其是在舊版本的 Pandas 上,是在序列上使用GroupBy+ apply,然后通過concat.


在 Python 3.60 / Pandas 0.19.2 上進行基準測試。這個人為的例子有少量的組;如果效率是一個問題,您應該使用您的數據進行測試。


import pandas as pd


df = 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


查看完整回答
反對 回復 2021-06-06
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號