pandas按组分组 - 组内区分大小写问题

4

我需要按照名为“关键词”的列对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()设置为避免此问题,但它不起作用。如有帮助,不胜感激,谢谢。


4
你记得将 .lower() 的结果重新赋值吗?所以你是否执行了:df['Keyword'] = df['Keyword'].str.lower() - EdChum
抱歉,那就是问题所在!谢谢!!! - Fabio Lamanna
1个回答

10
作为这个问题的跟进,其实在进行分组时并不需要覆盖关键字。相反,你可以在调用 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

正如你所预期的那样


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接