【问题标题】:pandas groupby - case sensitive issues in groupspandas groupby - 组中区分大小写的问题
【发布时间】:2015-01-29 14:16:31
【问题描述】:

我需要按名为“关键字”的列对 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(),但它不起作用。 任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 你记得把.lower()的结果赋值回去吗?你也这样做了:df['Keyword'] = df['Keyword'].str.lower()
  • 对不起,是问题所在!谢谢!!!

标签: python string pandas


【解决方案1】:

作为对此的跟进,您实际上不需要在进行分组时覆盖关键字。相反,您可以在对 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

如你所愿

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多