簡體   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