簡體   English   中英

使用 Python 刪除列中的非數字值

[英]Remove non-numeric values in column using Python

我已閱讀有關類似示例的各種其他問題; 然而,我認為我的例子足夠不同,值得提出一個新問題。

我有以下格式的數據框:

'Bob, Dole, 00001' '0.4'
'John, Smith, 00002' '0.2'

我想刪除名稱並將 ID 保留在第一列中:

'00001' '0.4'
'00002' '0.2'

我是 Python 的新手,我偶然發現了這個有效的代碼片段。 首先,我將數據幀Dat轉換為 numpy A = Dat.to_numpy() 然后我可以使用以下方法刪除名稱部分:

import re
print(re.sub("[^0-9]", "", A[1,0]))

我只是不知道如何將它應用於整個數據幀(不使用循環)。 有沒有更簡單的方法來做到這一點? 或者我應該只使用 for 循環?

聽起來您可以使用 apply - 創建一個函數,例如在一行中執行您希望它執行的操作,然后使用以下語法:

df.apply(func)

希望這有幫助,如果沒有讓我知道。

您可以使用.extract()將 ID 從列中拉出:

import pandas as pd

df = pd.DataFrame({
    'x': ['Bob, Dole, 00001', 'John, Smith, 00002'], 
    'y': ['0.4', '0.2']})

df['x'] = df['x'].str.extract(r'\w+, (\d+)')
print(df)

       x    y
0  00001  0.4
1  00002  0.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM