[英]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.