我有像这样的pandas数据框
a b c
1 "hi" 1 2
2 "hi" 4 1
3 "Hi" 1 3
4 "hi" 2 1
5 "Hi" 2 1
所有"嗨"应该更正为"嗨",我怎么能在这个干净利落的熊猫之前
这是一个玩具示例,真实数据可以更大答案 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)