繁体   English   中英

Pandas Dataframe - 根据正则表达式替换所有单元格值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM