使用Pandas 從DataFrame 字串中提取數字
在資料分析中,經常需要從字串中提取特定的模式或資料類型。對於 Pandas DataFrames,字串列可能包含混合資料類型,包括字元和數字。本文解決了使用強大的 Pandas 庫從此類字串中提取數字的挑戰。
考慮以下名為「df」的範例DataFrame,其中包含一個名為「A」的列,其中包含字串和數值的混合:
<code class="python">import pandas as pd import numpy as np df = pd.DataFrame({'A':['1a',np.nan,'10a','100b','0b'], })</code>
我們的目標是隔離每個單元格中的數值,從而產生一個僅包含整數的乾淨列:
A 0 1 1 NaN 2 10 3 100 4 0
使用正則表達式和捕獲組
從字串中提取數字的一種有效方法是結合使用正規表示式(regex) 和捕獲組。正規表示式允許我們指定匹配字串中某些字元或序列的模式。捕獲組使我們能夠捕獲並提取字串的匹配部分。
在這種情況下,我們可以採用以下正規表示式模式:
(\d+)
此模式表示匹配的捕獲組連續一個或多個數字 (d)。
使用「str.extract」方法將此模式應用於我們的DataFrame:
<code class="python">df.A.str.extract('(\d+)')</code>
產生所需的結果:
0 1 1 NaN 2 10 3 100 4 0 Name: A, dtype: object
捕獲組成功提取了字串的數字部分,忽略了字元。需要注意的是,此方法特定於整數,不適用於浮點值。
總之,使用帶有捕獲組的正則表達式提供了一種從字符串列中提取數字的簡潔有效的方法在 Pandas DataFrame 中。透過採用這種技術,資料分析師可以有效地隔離數位資料以進行進一步的分析和操作。
以上是如何從 Pandas DataFrame 中的字串中提取數字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!