如何纠正pandas数据帧中的拼写错误

时间:2015-02-24 21:46:27

标签: python pandas

我有像这样的pandas数据框

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

所有"嗨"应该更正为"嗨",我怎么能在这个干净利落的熊猫之前

这是一个玩具示例,真实数据可以更大

3 个答案:

答案 0 :(得分: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

请注意所有单词'嗨'取而代之的是' hi',但在最后一个例子中,'嗨'出现在一个单词的中间,替换没有完成。

答案 1 :(得分: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

答案 2 :(得分:0)

您可以将lambda函数应用于数据框中的列a,该列返回包含的字符串的小写,如果您的更正只是将字符串设置为小写。

e.g。

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

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

e.g。

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)