![](/img/trans.png)
[英]How to replace all value in all columns in a Pandas dataframe with condition
[英]Pandas Dataframe - Replace all cell value subject to regex condition
我正在解决一个问题,其中列中几乎没有重复“.”的值。 ,例如-"....." 或"...." 。
所以我想使用.loc
函数将所有这些值替换为np.NaN
。 我想使用正则表达式函数来识别至少有一次"."
重复的单元格值"."
.
所以我在 Python 中使用了以下代码 -
energy.loc[bool(re.match('.+', energy['Energy Supply'])),'Energy Supply']=np.NaN
请帮忙
您需要如下转义点,因为点代表任何字符,加号是一个或多个,试一试:)
re.match('\\.+', energy['Energy Supply']))
你可以使用str.contains来检查一个点,然后转义它以匹配它。
您不需要+
量词,因为它表示 1 或更多。 所以匹配一个点就足够了。
import pandas as pd
import numpy as np
data = [
"test",
"test.",
"..."
]
energy = pd.DataFrame(data, columns=["Energy Supply"])
energy.loc[energy['Energy Supply'].str.contains(r'\.'), 'Energy Supply'] = np.NaN
print(energy)
输出
Energy Supply
0 test
1 NaN
2 NaN
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.