在 Pandas DataFrame 的一列中查找并替换所有匹配但不区分大小写的字符串

我有一个具有分类列的 Pandas DataFrame:


df = pd.DataFrame({'Source': ['Coronavirus','Sars','sars','coronavirus',

                          'CoronaVirus','Sars']})

df["Source"] = df["Source"].astype('category')

print(df)

        Source

0  Coronavirus

1         Sars

2         sars

3  coronavirus

4  CoronaVirus

5         Sars

请注意文本书写方式的差异,例如(冠状病毒与冠状病毒与冠状病毒)。我希望实现的是转换所有相同的文本,即冠状病毒和sars,但不管它是如何写的(首字母大写等),并将它们统一起来。所以所需的输出将是:


        Source

0  Coronavirus

1         Sars

2         Sars

3  Coronavirus

4  Coronavirus

5         Sars

最终结果是如何产生的(冠状病毒或冠状病毒)并不重要。


函数式编程
浏览 195回答 1
1回答

梵蒂冈之花

使用Series.str.capitalize因为这个函数默认小写:df["Source"] = df["Source"].str.capitalize()如果需要将每个单词分别大写,(如果实际数据值有 2 个或更多单词)使用Series.str.title,默认情况下也小写:df["Source"] = df["Source"].str.title()print (df)        Source0  Coronavirus1         Sars2         Sars3  Coronavirus4  Coronavirus5         Sars
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python