簡體   English   中英

熊貓分組依據匯總字符串字段

[英]Pandas group by to aggregate string field

我的df是這樣的:

1   2   3
A  abc  ab
A  abc  cc
A  abc  ab

我想按記錄分組

1   2   3
A  abc  ab
A  abc  cc

甚至更好的是,有一個帶有串聯字符串的字段:

   1  
A_abc_ab
A_abc_cc

Pandas GroupBy似乎不適用於字符串:

df = df.groupby(['1','2','3'])

返回

<pandas.core.groupby.DataFrameGroupBy object at 0x7f4a37549bd0>

您沒有正確應用groupby 同樣在groupby之后,您必須進行group.aggregate()以便基於某些功能減少單元格

可能您可能希望更好:

df.apply('-'.join, axis=1)

產生

0    A-abc-ab
1    A-abc-cc
2    A-abc-ab
dtype: object

當然,您可以在加入之前或之后drop_duplicates

從此移動:

1   2   3
A  abc  ab
A  abc  cc
A  abc  ab

對此:

1   2   3
A  abc  ab
A  abc  cc

根本不涉及分組! 您只是刪除重復項:

In [9]: df.drop_duplicates()
Out[9]: 
   1    2   3
0  A  abc  ab
1  A  abc  cc

然后,您可以使用apply進行串聯:

In [10]: df.drop_duplicates().apply('_'.join, axis=1)
Out[10]: 
0    A_abc_ab
1    A_abc_cc
dtype: object

暫無
暫無

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

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