Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找并替换DataFrame列中匹配但不区分大小写的所有字符串_Python_Regex_Pandas_Dataframe_Replace - Fatal编程技术网

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

Python 查找并替换DataFrame列中匹配但不区分大小写的所有字符串,python,regex,pandas,dataframe,replace,Python,Regex,Pandas,Dataframe,Replace,我有一个熊猫数据框,它有一个分类列: df = pd.DataFrame({'Source': ['Coronavirus','Sars','sars','coronavirus', 'CoronaVirus','Sars']}) df["Source"] = df["Source"].astype('category') print(df) Source 0 Coronavirus 1 Sars 2

我有一个熊猫数据框,它有一个分类列:

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
请注意文本书写方式的差异,例如(冠状病毒vs.冠状病毒vs.冠状病毒)。 我希望实现的是将所有相同的文本,即冠状病毒非典型肺炎,但无论其如何书写(首字母大写等),都进行转换,并统一所有文本。因此,期望的输出是:

        Source
0  Coronavirus
1         Sars
2         Sars
3  Coronavirus
4  Coronavirus
5         Sars
最终结果如何产生并不重要(冠状病毒或冠状病毒)

提前感谢。

请使用,因为此函数默认为小写:

df["Source"] = df["Source"].str.capitalize()
df["Source"] = df["Source"].str.title()
print (df)
        Source
0  Coronavirus
1         Sars
2         Sars
3  Coronavirus
4  Coronavirus
5         Sars
如果需要单独大写每个单词(如果在实际数据中,值有2个或更多单词),则默认情况下也使用小写:

df["Source"] = df["Source"].str.capitalize()
df["Source"] = df["Source"].str.title()
print (df)
        Source
0  Coronavirus
1         Sars
2         Sars
3  Coronavirus
4  Coronavirus
5         Sars

@JvdV-你是罗格特,刚刚测试过。因为
大写
标题