pandas groupby - 群组中的案例敏感问题

时间:2015-01-29 14:16:31

标签: python string pandas

我需要通过名为“Keyword”的列对DataFrame进行分组,其中包含:

grouped = df.groupby('Keyword')

然后我正在搜索每组的大小:

a = grouped.size()

结果如下:

Keyword
ATTORNEY            48
Appraiser           94
Attorney          1437
BASEBOARD            2
BELL PEPPER          1
BULLETIN BOARD       1
Bell Pepper         36
Bell pepper         19
Bulletin Board      20
Bulletin board       3
CANDY              765
CANDy                2
CANdy                1
...                ...

我想避免区分大小写的问题,并为“CANDY,CANDY,CANdy”等单词获得一个独特的组,这些组仅对某些较低或较高的字符有所不同。我试图在分组之前将此问题设置转义为df['Keyword'].str.lower(),但它不起作用。 任何帮助都会非常感谢,谢谢。

1 个答案:

答案 0 :(得分:7)

就像对此进行跟进一样,在进行分组时,实际上并不需要覆盖关键字。您可以在调用groupby

时执行整个转换
grouped = df.groupby(df['Keyword'].str.lower())

作为一个例子,你可以拥有:

df = pandas.DataFrame({'Keyword': ['Attorney', 'ATTORNEY', 'foo'], 'x' : [1, 2, 42]})

df.groupby(df['Keyword'].str.lower()).sum()

哪个输出:

           x
Keyword     
attorney   3
foo       42

正如您所期望的那样