簡體   English   中英

在Pandas數據框中將行折疊為一列值

[英]Collapsing rows into one column value in pandas dataframe

如果我有一個像這樣的數據框,每個用戶ID都有不同的產品頁面,並且我想將用戶的所有產品頁面歸為一組,並用連字符分隔

在此處輸入圖片說明

我希望最終結果如下

在此處輸入圖片說明

在pandas或sql中這樣做更容易嗎? 我的數據集當前為7.5MM行,用於更多數據時將增長到一千萬。

在大熊貓中,我們可以使用series.str.concatenate方法折疊並通過連字符連接嗎?

在SQL建議?

在熊貓中,您可以將groupby與匿名函數一起使用:

>>> df = pd.DataFrame([(5, 'product'), (5, 'product'), (5, 'home'), (4, 'product'), (4, 'home')], columns=['user_id', 'page_category'])
>>> df
    user_id page_category
 0        5       product
 1        5       product
 2        5          home
 3        4       product
 4        4          home
>>> df.groupby('user_id')['page_category'].apply(lambda x: '-'.join(x))
 user_id
 4            product-home
 5    product-product-home
 Name: page_category, dtype: object

如果用“輕松”來表示“更快”,請記住SQL是數據庫接口,而不是數據庫本身。 在數據庫中執行此操作的速度取決於其體系結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM