2015-02-24 31 views
0

我有一个熊猫据帧像在大熊猫数据帧如何纠正错别字

a  b c 
1 "hi" 1 2 
2 "hi" 4 1 
3 "Hi" 1 3 
4 "hi" 2 1 
5 "Hi" 2 1 

所有的“嗨”应更正为“喜”,我怎么能干净地大熊猫

这是之前这玩具例子,实际的数据可以更大

+0

你不仅仅是Hi-> hi场景吗?例如再见 - >再见,你好 - >你好,等等 – 2015-02-24 21:59:49

回答

1

如果你希望它是小写,你可以做 -

df['a'] = df['a'].str.lower() 

如果您要更换某些词 -

df['a'] = df['a'].str.replace('Hi', 'hi') 

或者,如果这个词出现在一个短语,使用正则表达式 -

df['a'] = df['a'].str.replace('\bHi\b', 'hi') 

此正则表达式选项,您可以用言语甚至工作 -

In [12]: df 
Out[12]: 
      a b 
0   hi 1 
1   hi 2 
2  Hi mom 3 
3 mom Hi, mom 4 
4  mHim Hi 5 

In [13]: df['a'] = df.a.str.replace(r'\bHi\b', 'hi') 

In [14]: df 
Out[14]: 
      a b 
0   hi 1 
1   hi 2 
2  hi mom 3 
3 mom hi, mom 4 
4  mHim hi 5 

注意,所有的话“嗨”得到替换为“喜”,但在最后一个例子,其中“嗨”出现在一个字的中间,替换没有完成。

0

使用replace

In [127]: df.loc[:, "a"] = df.a.replace("Hi", "hi") 

In [128]: df 
Out[128]: 
    a b c 
1 hi 1 2 
2 hi 4 1 
3 hi 1 3 
4 hi 2 1 
5 hi 2 1 
0

你可以在您的数据框中的a列应用lambda函数,该列返回包含的字符串的小写字母,如果您的更正只是使字符串小写。

例如

df.a = df.a.apply(lambda x: x.lower()) 

apply function方法可以扩展为其他更具体的替代品。

例如

df.a = df.a.apply(lambda x: 'hi' if x == 'Hi' else x) 

或者您可以使用函数而不是lambda进行更复杂的转换。

def my_replacement_func(x): 
    return x.lower() 
df.a = df.a.apply(my_replacement_func)