我有以下代码来替换我的数据框-dfMSR中的文本
oldtxts = ['NA', 'na']
newtxt = 'N/A'
for oldtxt in oldtxts:
if oldtxt in dfMSR.values:
dfMSR = dfMSR.replace(oldtxt, newtxt, regex=True)
else:
print("\nNo {oldtxt} in Dataframe")
是否有更好的方法来替换所有案例场景,而无需拼写它们或将数据框中所有文本的案例更改为大写或小写?在上面的代码中,如果用户编写了“Na”,它将不会被替换,因为我没有将其包含在oldtxts中
编辑:添加样本数据和所需输出
dfMSR = pd.DataFrame({'A':['NA','na','O', '', 'N/A'],
'B':['Anna','E','NA', 'Z', 'Na']})
期望输出:
A B
0 N/A Anna
1 N/A E
2 O N/A
3 Z
4 N/A N/A
Thanks
您可以使用
str.replace
的case参数,因为您已经提到了regex=True
请注意,如果它不是基于Regex的
输出:
您可以将
str.lower()
与.replace
链接,而且不需要测试if
条件,因为它是在替换中隐式执行的:在一个示例中,它将如下所示:
相关问题 更多 >
编程相关推荐