簡體   English   中英

如何在python中的數據框列上使用正則表達式進行分組?

[英]How to do a groupby with a regex over a dataframe column in python?

我有一個名為clientesv的表數據框,其中包含名為COBERTURA的列,其值為:

clientesv.groupby('COBERTURA').size()

COBERTURA
          
A        9174
A3          1
B        1148
B0        179
B1       3922
B2          3
B3       1971
C        1511
C1       1065
C3        359
C4        145
C5         22
C6         87
C7        493
C8        174
D1         12
D2      16016
E          62
E1          5
M B      2751
M P      3080
M10     10281
M15      5187
M5       3765
dtype: int64

我想在 Groupby 中使用正則表達式進行總結,結果是:

A  (total amount of A + A0)
B  (total amount of B0, B1, B2, B3)
C  etc
D
E 
M

我試圖做這樣的事情:

clientesv.groupby(clientesv.COBERTURA.str.contains(r'\A', regex=True)).size()

但是這個表達式只總結了 A 的值,所以我不知道如何遵循......

嘗試^(\\D)獲取字符串開頭的所有非數字字符。 value_counts也比groupby().size()快。

clientcsv.COBERTURA.str.extract('^(\D)+', expand=False).value_counts()

您可以創建一個僅包含第一個字母的 aux 列。

clientesv['new_label'] = clientesv.COBERTURA.str[0]
group_clients = clientesv.groupby('new_label')['COBERTURA'].agg('sum').reset_index()

暫無
暫無

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

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